I think I'm going to move to Subversion all the websites which still aren't versioned. It's so annoying to change things locally, test locally, then you want to upload them to the server and there's always some change which it's not updated and booooom!
With SVN (Subversion) it's much easier. You continue building your stuff locally and when you're happy with it, check it into your Subversion server. Then you log into your hosting server with ssh, and in your /web directory do something like svn co http://mysubversionserver/project/trunk . - that will associate the /web directory with the subversion repository path /project/trunk. Meaning that each time you do changes and commit them to SVN, you can get all the changes rolled to your server by simply connecting with ssh and running svn up in the /web directory.
Obviously for doing this you need a hosting account with ssh access. Most of them do not have such thing, and I really can't understand how could I survive without ssh access before. Even for simple things such as deleting a directory, ftp's and sftp's are terribly slow :-)
There's more sophisticated people which are using build makers like ant or the famous capistrano to deploy stuff but for the moment I still don't need that degree of complexity; it's not worth the effort yet.