TeamCity has a wonderful feature of allowing the developer to perform a personal build before committing. Very useful!
CruiseControl.NET is the granddaddy of the bunch and is hence a little dated visually etc. As it has been around for a while, Google knows how to fix many issues you will come up against.
For these reasons (amongst others), I use CruiseControl.NET at work and TeamCity at home and in my open source life :)