Ant vs other deployment tools
Kris-
We use ANT in our automated build process because we can invoke it programmatically (with SH/Jenkins, etc.) to move code between orgs and run tests without having to open an IDE, create a change-set etc.
This helps our development process because we need to move code between non-namespaced and namespaced orgs and do some tweaking to it before we can successfully deploy from development/test to packaging.
Maybe checkout this github repo, it's a lot more specific and has an App built into it and I'll be adding the preconfigured AMI in a few days prior to presenting it at DF:
https://github.com/BracketLabs/AppExchange-Team-Development-on-Force.com-Platform-Demo
I agree with Jordan - Ant allows you to publish a completed build
Changesets and Eclipse will always publish the latest version of the code. A complex project usually requires the ability to use a code configuration tool (such as Git) that allows managing code versions, which can then be deployed using Ant
in Other words, you can take a snapshot of your development org when it is stable, then continue experimenting, and when deployment time comes you can deploy the stable snapshot.
Ant also gives you an automated method of deploying the same code version to multiple environments
Ant allows running validation only deployments to target environments on a regular basis (for example to test code coverage)