Now, if your battery drain is caused simply by use -- you never put the iPhone (or iPod touch) down and are always playing games, pushing IMs, watching movies, etc. your only choice is to get a few more charging cables or battery extenders. If, however, you're doing roughly the same things you've always done and getting substantially less battery life for your troubles, there's a chance a few troubleshooting steps might just help get your power problems back under control.
If, all of a sudden, your iPhone starts burning through battery and getting hot at the same time, there could be a "rogue process" just churning away in the background. The answer to that is a good old-fashioned power cycle.
Hold down the sleep button until the red "Slide to power off" arrow appears. If your iPhone is frozen or otherwise in dire straights, you can hold down the home button at the same time as the sleep button to force quit all applications and bring up the red arrow. Then just swipe, let the iPhone turn off, wait a few seconds, and hold down the sleep button again to turn your iPhone back on.
Since iPhone 2.0 we've seen Push gone wrong really cause a hit to battery life. With 3.0, Push Notification means not only could mail, calendar, and contacts start misbehaving in the background, but your IM, Twitter, games, and all sorts of other apps can as well.
Apple says Push can cause a 20% drop in battery life, but if you think yours is worse then it should be, the next step is to redo anything that involves Push, including MobileMe and Exchange accounts, and apps using Push Notification. Now, you might want to try doing one at a time, check your battery life, and if you don't notice any improvement, try the next one. If you find the culprit quickly, that approach could save you some time. If you just want to get it over with, you might want to do them all at once.
For the accounts, go to Settings > Mail, Contacts, Calendars, choose your MobileMe and/or Exchange accounts, scroll down to the bottom and hit delete. For apps, go to Settings > Notifications and look at the list of any apps using Push Notification. Go back to the Home Screen, hold down the home button until the icons start to jiggle, and delete the Push Notification app.
Then, for accounts, go back to Settings > Mail, Contacts, Calendars, hit Add Account..., choose Mobile Me and/or Exchange, and re-enter your settings. For Push Notification apps, either sync them back from iTunes or go to the App Store app and re-download them.
We won't lie to you -- this is the nuclear option. It's scorched earth. But to be frank, we at TiPb almost always default to this step because it almost always "just works". We do this every time we get a new firmware and every time we notice something just isn't right, and we have excellent battery life to prove it.
To restore your iPhone as new and get a fresh, clean start, attach it to your Windows or Mac via the USB cable and launch iTunes. A Restore button should be front and center on the screen. Hit it, then wait as iTunes goes through the laborious process of wiping your iPhone and installing the firmware again from scratch.
IMPORTANT: When iTunes asks if you want to restore your data from backup or set up as a new iPhone, choose NEW iPHONE.
Yes, you will lose your settings and any data saved in apps that don't provide some sort of sync functionality, but it's possible (even likely) some corruption in those settings or data is contributing to your poor battery life, and with an appliance like the iPhone, this is the only way to get rid of it.
This will also kill your Jailbreak, if you're jailbroken. But if something in your Jailbreak was killing your battery life, like backgrounder gone awry, trying out your iPhone without the Jailbreak is a good way to establish that.
Once your iPhone is set up as new, you can sync your info and media back over using the iTunes tabs as normal, and/or setup accounts and download apps on the iPhone itself.
iPhone 3.0 and iPhone 3GS should have roughly the same battery life for you as iPhone 2.2.1 and the iPhone 3G. If you're getting something substantially less than that, there could be something wrong with your iPhone 3.0 install or your iPhone 3GS' system.
Rebooting the iPhone, redoing Push-enabled applications, and restoring your iPhone as new are three escalating steps you can try to fix your battery problems.
Let us know how they work for you.