My 4S was losing about 20% overnight (8 hours) on stand-by and anywhere from 3% to 8% per hour on stand-by at work depending on what seemed to be the time of day and where I was at. Not as bad as what many people are describing but still very poor performance. The battery life has improved considerably and I have been satisfied with the performance over the past few weeks. I have WiFi On, Cell Data On, Siri On, Bluetooth On, Notifications On and Location Service on. For my last test, I purposely used the phone sparingly (3 hours music, 1 hour email/web) to see how long the battery would last:

I do have Siri Raise to Speak and Setting Time Zones off and do not use iCloud. I also do not use the notification center. The main change that has helped my battery life was setting to manually fetch. I believe one or both of my email accounts (MS Exchange and Yahoo) have issues with the Push and Fetch Every XX Minutes option. Using manual fetch is a compromise I can easily live with. Also, if I do see my battery drainage start to accelerate (observed this a couple of times in December), I will look at the CPU Load/Wired Memory and if these areas look high then it's an indication that a runaway process is running in the background. I will then kill the processes through power off, hard reset, soft reset, etc.
I have also been running my 3GS on 5.0.1. It had some battery issues but I was able to fix them through a restore. It is 100% on WiFi and I do have the same email accounts on Push and that does not seem to affect the battery drain. However, the battery is now losing 20% overnight on stand-by so I will go through my reset process tonight.
Good luck!