This past year, location services have come into their own. The hardware and software have aligned to allow for tracking users location, without killing their phone's battery. As this technology becomes more refined, so do the sensibilities of your users. They are more savvy about being tracked and need to be showed the benefit of location tracking.
As an app creator, you now have to balance grabbing a user's location to provide benefit against their wariness of giving it to you. The first question you have to ask yourself, does my app need to grab their location? What benefit is it to you? What benefit is it to your users? Do I require their location when the app is in the background or only while they are using the app?
The majority of apps do not require a user's location. At best it only helps or enhances the experience. Note taking apps, calendar apps, social media apps, news apps, and general information apps usually fall into this category. The addition of location is not critical to them, but it may help or enhance the experience a little, such as seeing the notes you created at that location or checking out local news. Only ask for location when it seems necessary and useful. Be prepared for it to be rejected.
Other apps require location, but can function without a user's exact point. Uber and Yelp are great examples of this. They put location at their core, so when you go into the app content is relevant to where you are at right now. What if a user decided not to give one of these apps access to their location? This can be negated by a search bar of locations or an exact address input. These are also effective methods to get an exact location when indoors or the phone has poor signal strength.
Certain apps require a user's exact location to provide the most beneficial results. They are essentially crippled without the ability to track a location. Any transit app like Google maps falls into this category, as does the new social-local apps like Yik-Yak (an anonymous, local messaging app). Google maps needs to know where you're at or it just can not do it's job. The user should know about this upfront and be expecting the location requirement. Make sure you explain the benefit of your service to your user, before asking for location permissions. You really only get one chance at this.
Some of these apps require location data, while the app is in the background. This could be for navigation purposes, relevant push notifications, or pre-load local content in the background. Google Maps constantly tracks your location, once you setup a route and start navigating. This allows it to give you turn-by-turn directions. The downside is it'll drain your battery much more quickly than normal. It takes power to run all the antennas required to get a location fix. Apple has one work-around for this, Significant Location Change. It allows the app to only ping a user's location when they transfer cell towers. There is no exact distance or timing for this (it depends on the user's movements), but it significantly reduces the battery drain of an app and with some fancy calculations can be quite useful. This is one way apps like Foursquare are able to give you relevant suggestions based on where you are.
iBeacons are another way to deal with location tracking. They are great for indoors, where GPS and cellular tracking are less accurate, and can be utilized to even more relevancy. But that's a whole different post.
TL;DR: Making your app relevant to where a user is at that moment and providing them with the information they need are the crux of location tracking. If a user's current location is not necessary, make it optional. Make sure the benefits are apparent to the user or they may not allow location tracking. Battery life and user-willingness are your biggest constraints when dealing with location.