I'm just starting to get used to hudson ready to experiment and see how it will fit into our current environment. I have absolutely zero experience with Teamcity so can't comment on that but I am enjoying working with hudson thus far.
There are lots of plugins for hudson plus the hudson site gives you plenty of advice for writing your own (http://wiki.hudson-ci.org/display/HUDSON/Extend+Hudson).