Capistrano works very well for this kind of thing. It came out of the Ruby on Rails ecosystem, and was initially very strongly tied to deploying Rails apps. Since a lot of people had noticed that it was handy for remote server control, it's become a bit more general-purpose.
With no extra setup, Capistrano:
- Uses SSH to connect to the application servers
- Checks out the latest source code from Subversion to a new, dated, folder
- Activates the new release by updating a symbolic link or two
- Reloads the application server
And all this with rollback functionality.
Another good option would be to use your operating system's packaging system (RPM, deb/apt, etc). This tends to require a good level of familiarity with your operating system and its policies, but fits in great with other tools if you know what you're doing.