will running Google Latitude (or any similar app) in the background significantly affect battery life?
Solution 1:
Specifically, the Latitude app (and other background location-updating apps) register themselves for location updates "on significant location change".
How the phone knows the location has changed significantly is when the phone does a cell tower handoff. It's moved enough that it's out of range of the tower it was talking to and its service is handed to the next tower. At that time, if any apps are registered for location updates, the phone fires up its GPS, gets its coordinates, and feeds them to those apps. Those apps then get to do a LITTLE work with what they were told.
When iOS 4 came out, I wrote a little app to play with this API. Basically it just sat in the background and recorded lat/lng for every update it got. Between my office and my house (like 10 miles) it got eight or nine sets of coordinates.
That means eight or nine times (call it once a mile or so) that the phone has to fire up the GPS chip, listen for signals from outer space, and do something with them. That obviously takes up more electricity than if it didn't have to do that.
Is it MUCH more? You know what? Not really. I charge my phone when it needs it (rather than, say, nightly), and I didn't notice it needing it more than usual when my little app was running. So my guess is that Latitude won't be a major battery suck. But it'll definitely suck some.
Solution 2:
Yes, any app that runs in the background needs some attention from the CPU, and this costs battery power. Further, if the app needs GPS and/or 3G service or other battery-intensive services, then of course the battery will deplete even faster.
But depending on your situation and circumstances, this can be a trade-off that's worth it, especially if you only need to do this for shorter periods of time.