The default battery life indicator on the iPhone looks nice, but isn't the most precise way of telling how much time you have left before your next charge.
Step forward BatteryStatus, a free application that gives you a more accurate guide to what you can do on your remaining charge. The program assesses your battery level and shows you the remaining time for the following activities: Talk - 3G, Talk - 2G, Standby, Net - EDGE, Net - WiFi, Audio Play, and Video Play. BatteryStatus also indicates your battery's current state (i.e. whether it's unplugged, charging or full).
The readings given by BatteryStatus seem to be pretty accurate - it's just a shame the app isn't presented in a nicer way. The user interface takes the form of a settings screen, rather than offering a more visual, meter-based indicator. Incidentally, the screenshots on the program's App Store page are misleading, because they show this kind of gage-based indicator.
BatteryStatus offers an effective means of figuring out how much time you have left to do certain activities before you need to charge your iPhone again.