I use msdeploy for this. It works perfect.
About Ant; for the .NET platform we have NAnt and you can use it in combination with MSDeploy; you have the possibility to call MSDeploy from your Nant-script.
Edited:
Just to make things clear; you can do everything with msdeploy. Using Nant is not a requirement.