I'm a big fan of the BetterSnapTool available on the App store. It costs $1.99, but it works with all widows and has drag-to-snap, shortcuts keys, etc.
I'm still surprised Apple hasn't just incorporated this into OSX.
BetterTouchTool is free, and strangely incorporates the same window snapping functionality as it's sister: BetterSnapTool. I've always been a little confused by the paid download for BetterSnapTool... Unless I'm missing something you can get all the same functionality and more (mouse and trackpad configuration etc) with BTT.
http://www.bettertouchtool.net/