In theory anything allows a dynamic DNS, as long as you can find a client for your OS. I personally use DynDNS
and ddclient for my linux server. You only need one client per internet connection, not one per computer. For FTP, make sure TCP ports 20 and 21 are forwarded on your router.
EDIT: As far as programs are concerned, try FileZilla server for windows and proftp for linux/unix. There are some others listed in the freeware utilites sticky at the top of this forum too.