There is an iPhone app, namely BatterySense App By Philips, which is designed to that purpose. This app will present you number of activities that iDevices users use to do like watching video, play games, Audio playback, and make phone call and more. Those activities are divided into categories, and each category will notify your battery life time if using it. This picture for example:
I am not sure about its accuracy since I have not tried it yet, but some people recommend it and convince BatterySense app gives accurate reports. You are welcomed to test it and find out for yourself.
Morever, beside reporting you on iPhone battery life time, it also shares an advice to extend and preserve your battery life, you can find the tips by pressing "i" or info.
And as for the iPhone 4s users who are complaining about iPhone 4s battery life, can give this app a try. Don't worry it's a free app, you can find in App store.
And BatterySenses is compatible with all the iOS device types as long as they are running or iOS 3.2 or higher and the size is big enough: 28.5 MB.