If you haven't guessed it yet, BetterSnapTool ($1.99) does exactly that, flawlessly. However, it also provides a bunch of other handy features like creating custom snapping areas and more. BetterSnapTool is something that you won't truly appreciate until you use it, so for the many that still don't know about this essential tool, trust us on this, BetterSnapTool is one purchase you won't regret unless Apple realizes how much OS X needs window snapping and adds the feature Windows users have enjoyed for years.
The BetterSnapTool website claims a free trial is available however, I didn't have much success getting it to work.
For more great Mac apps, checkout the List of Our Favorite Mac Apps
My Personal Set-Up
Another part that I absolutely love about BetterSnapTool is how customizable it is. Personally, I am not a big fan of the default settings when you originally install the app so, for anyone interested, here's my current set-up.
I prefer disabling the corner snapping because first of all, I don't usually need it and a lot of apps won't go that small.
My goal was to imitate the border width and colors used by OS X for the selection area when you click and drag the cursor on the desktop so that the BetterSnapTool snapping area can blend in with OS X's design and seem like a native feature. Included on the side are my customizations in action.
As of keyboard shortcuts, I use none however, I leave the ones I need turned on as they carry over to the next section.
Lastly, are the extras. All I enabled was the secondary click on the '+' window button which shows menu with all actions available. This is where my settings from the previous section, keyboard shortcuts take effect.