In market there is lot of kind of hosting is going on in which mainly two types occurs one is free while another one is paid hosting if you think about free then it means you don't need to pay for domain name. Your URL will be something like username.freehost.com or freehost.com/username. As I noticed above, the advantage is that you don't need to pay for domain. But note that if you move your website to another provider in the future you can loose some or all your traffic.
Your provider will probably include ads to your pages usually 1 or 2 banners, sometimes popup windows. If you plan to use banner exchange on your site read carefully their Terms and conditions. Some free hosts doesn't allow it.
Free hosts usually allow lower bandwidth then paid hosts and a lot of them don't offer futures like PHP and MySQL. While if you consider paid hosting then you can host your own domain. If you decide to change the web hosting provider in the future, you easily transfer the domain to the new provider and don't loose your traffic.
Most paid hosts offer 24/7 support via email or live chat and some of them provide toll-free phone support. So these are the basic difference in both of them.