Power saving tips for Galaxy S2 that don't involve turning it into a dumbphone My Galaxy S2 has always shown not more than 8 hours of battery life.
This is with the stock ROM, as well as the recent 2.3.5 update and a rooted kernel.
All the battery saving tips I've seen essentially boil down to 'turn off everything that made you buy the damn phone in the first place and use it only for voice calls like a dumbphone.' - i.e. disable 3g/EDGE/wifi/gps/bluetooth/screen brightness.
Of the lot, I've done the following:


Screen permanently set to 10% brightness, i.e. the lowest.
Bluetooth/Wifi/GPS only on when needed, which isn't much (Couple of Foursquare checkins everyday).
Sync disabled.
Haptic feedback/vibrations disabled.
The 2 capacitative buttons are set to only glow in the dark, so during the day they are never on.


Yet my battery goes down like crazy, and if I don't carry my charger with me the phone can't even make it through the day. Is there a way to find out what apps hog the battery?

The battery usage graph and list of apps by battery usage doesn't really help; it only shows me the apps that I've run myself recently.

So is there anything else one can do to improve battery life, or am I resigned to carrying around a charger always?
I usually get by the day by carrying a USB charger since I always have my laptop or other computers around me. Some people get through by buying a second battery pack or a thick extended battery.

Any apps that syncs every 15 minutes is battery sucker, since it prevents the phone from sleeping. Syncing every hour or so shouldn't affect battery by much. If possible you should prefer apps that uses C2DM (i.e. push instead of poll). Many apps that polls for data have configurable polling frequency, try to have the same polling frequency for all apps or integer multiples. 

For mailboxes that need to receive occasional urgent emails, don't use the stock Email client, instead use Gmail client or Exchange which uses push. If your email server supports IMAP IDLE extension (a push extension for IMAP protocol), you should use third party IMAP client, e.g. K9 Mail. However, don't use push for low priority high-traffic mailbox. You might be able to find a sweet spot for yourself by using two or more mailboxes for your high urgency and high traffic mailbox.

If you're rooted, underclock. Most phones have much more CPU than is needed for daily usage; underclocking will curb the phone to not go full power state unexpectedly, remember to restore the clock before doing CPU intensive activities (e.g. games) and to underclock it again afterwards.

I hope you know to disable Live Wallpaper. They're good for showing off, but not if you want your phone to last the day.

Secure the phone in your pocket. I found that my phone drains battery faster when in a tight pocket since the hardware button are often accidentally pressed which activates the screen and prevents the phone from sleeping.

In some custom ROM, e.g. CyanogenMod, the notification bar have power widget, which is handy for quickly enabling/disabling battery sucking features, e.g. GPS, 3G, etc. 



However, remember that in the end it's all a tradeoff: