The Stockfish team has made tremendous progress recently, thanks to 1) putting the code on Github and accepting patches, and 2) building an open, distributed testing framework that tests every patch by playing thousands of games.
A cool feature people may not know about - many of these GUIs allow you to play two engines against each other. It's fun to watch two strong programs slug it out. :)
http://stockfishchess.org/
https://github.com/mcostalba/Stockfish