There are a lot of existing threads about this. Things to try include:
1. Wiping the cache partition from the bootloader. This seemed to help a lot of people after the ICS update.
2. Turning on wifi, Bluetooth, or mobile data only when you need it. Try Power Toggles for a handy and versatile toggle bar widget.
3. Turning off background sync (which can also be done easily using Power Toggles).
4. Changing automatic refresh to manual in any app where you really don't need it done automatically (like Facebook, Pulse, Currents).
5. Checking your battery stats to see if there are any apps in particular that are using an inordinate amount of battery.
6. Using static instead of live wallpapers. Certain live wallpapers use more battery than others--you just need to try them out to see.
In regard to the boasts of 21 hour talk time, you have to keep in mind that those are test conditions, where the display is probably not on. Display eats up the most battery, so if you're doing something that requires the display to be on a lot (especially if there's a lot of processor-heavy activity like gaming), your battery will run down faster. I've found that on my Maxx, I can get a little over 6 hours of total screen time on a full charge, which is considerably better than phones with an average battery, where it's more like 3-4 hours.
Sent from my ASUS Transformer Pad TF300T using Android Central Forums