Activity Monitor has an "Energy" tab that is useful in situations like this. It can tell you when an application is preventing sleep altogether and it can also show power usage of a process over the last 12 hours, so if you investigate this straight after a "night's sleep", you can usually spot culprits pretty quickly.