Before I started using rsync, I used
lftp and its "mirror" option. It's a scriptable ftp client that also has SSH capabilities (although I don't know if you can sync with SSH like you can with rsync.) lftp also allows you to mirror either your local box or the server (reverse mirror) and there is an option to include/exclude files, similar to rsync.
Speck