Bluehost has been good to me, even though expensive at $10/month (can't believe that is expensive), the only limitation is that it is pretty insecure to use FTP and they don't like large files (greater than 1GB), so it isn't the perfect server for everything.
And they only allow the main account to use SFTP.
How to create an FTP Account - richtong.com
For a more secure FTP client upload, use SFTP (Secure File Transfer Protocol port 22)
You will need to enable SSH/Shell access on your account. If you do not already have SSH/Shell access, Click Here to learn how.
Note: Only your main FTP/cPanel username can be used for SFTP access. FTP accounts created using the FTP Accounts tool will not work.