Since moving away from buildbot i've been using cruisecontrol and i've been happy with it to certain degree. My current projects consist of building c++ & ruby (with some c extensions) to multiple architectures and and only gripe with is that most features do require ant. And currently single instance of cc is building roughly 40 different projects.. Build phases we have do consist of running unittests, some functional tests, getting code coverage and making a report of those, updating package database, irc integration, software packaqge creation and repository update (debian)
Only gripe is that most of the fancier features would require that (Atleast when inside cc build loop) build is happening with ant.
I've also evaluated hudson, it seems to be somewhat more flexible than cruisecontrol but i dont personally like the configuration interface of it.