Application to Monitor Battery Usage by Application
This is not feasibly possible or even reasonable. The battery is just used. The system can track the current battery status and current usage, but it is not possible to track where exactly the power goes. It just all goes into the circuitry, the CPU, the Display, all things that the application uses. No application uses more battery than another unless it relies upon the hardware to a different extent, such as more complex apps will require more battery power because they need more CPU threads, and apps that can locate you will take even more because they need to power up the GPS. Using this logic, you can estimate which of your apps use the most battery.

On the other hand, you can try to measure battery usage manually. You can close all other apps from backgrounding and keep the phone in airplane mode with battery % display on. Then open an app and track how long it takes to drop by 10% from 100%. Then charge the phone again and do it all over for another app. The most important thing is to ensure the phone is operated at a constant temperature under 50 Degrees F and under completely constant runtime variables. This is the only way.

If you built the application, on the other hand, you can use a utility called Instruments to monitor the status of various aspects of the iOS device to determine the approximate battery drain more efficiently. This will get the status for the entire device, however, as, like I said, it's impossible to tell on an app-to-app basis. Instruments also relies upon the iPhone being tethered to the computer, which means it won't be running down the battery anyway, so Instruments only gives power consumption information.