This article explains how to call Microsoft's WebDeploy tool from TeamCity to deploy a web application to a remote web server. I've been using it to deploy to a test web server and run selenium tests on check-in.
We are using Octopus Deploy to manage our environments on top of Team city.
As a Build Process we have a Octopus Release and Octopus Deploy Creating a Release in Octupus which is then also automatically Deployed;
Since Octopus is managing our Environments it also provided variables which we use extensively and can use the same build to create a new environment all together.