We use TeamCity for our CI ... it's pretty cool. It's web-based, so it's easy to access from just about anywhere. Our SOP is to have one CI build, a QA build, a deployment build and a release build. the CI build runs everuytime something is checked in. QA Build runs twice a day, the deployment and release builds run on-demand. Not only will it build the solution, but since we also have our projects linked with MSBuild, it will copy the assemblies out to the application folder on the server and even load our database artifacts for us.

-tg