As long as you own the domain name, then you can transfer it to another host.
The best way to approach this is to contact the hosting company where you want to move and ask them if they can move a wordpress site from your old host to the new host. The biggest challenge is moving the database, so be sure to confirm they can do that before you move. I've listed one blog hosting company below that I know can move Wordpress blogs. Of course ask first, and then you'll know for sure. Anyway, this is a good question to ask before you start a blog.
Yes, you will need all your codes and your database files uploaded. There might be some editing about your code on database connection, database name, database user and password other than that everything will work out just fine.
I want to suggest this site
Yes you can using an ftp software like filezilla so that you can upload your site to your new web host. Most paid hosting plan has an ftp support. You can try myhosting in transferring your website.