Chris Breen describes his process for Troubleshooting a battery-sucking iPhone 4S.
By using System Activity Monitor, a low-cost app, he discovered a problem with iCloud contact syncing that was causing dataaccessd (a process) to continuously crash. His fix was to wipe the phone and do a fresh (not restored) installation, then reinstall his data and apps.
I used the same process to solve my own iPhone 4 overheating issue when iOS 5 was first released. Fortunately, iCloud makes it relatively painless process to migrate data to a new phone.