Hosts such as Hostgator would be ideal.
To set up a website you need two distinct things: Firstly - domain name registration and Secondary - hosting. You could have the same business do both for you but most experts suggest you should keep these separate ie use someone like Godaddy for domain registration and a host such as Hostgator.
If you intend to use a website for possible income, it is not recommended you use free hosting as you never have total control over your website.
Wordpress is a script, the most popular one used for blogging. It could be used for your website and it comes free with a good hosting package such as Hostgator provides. There are lots of free info available on setting up a self-hosted Wordpress blog - use Google for this. Also, there are lots of free themes,plugins etc for Wordpress.