I just read a post on another blog (I'm not mentioning names) which was a thoroughly confused and misleading post about types of web hosting. Having personally used many types and advised a fair number of friends and clients I think I can do a better job.
The first thing to remember is that if you just want a nice little vanity web log like this one with some customization of appearance and a few ads to earn a couple of dollars then you don't need web hosting. Blogger, TypePad and WordPress are more than happy to host your blog and share some of the ad revenue with you. With the assistance of other free services such as image and file hosting you can even use these services to host quite good small web sites.
If you want more control over the software you run and to tie in other things such as a wiki or forums for your blog then you need to go to real hosting. You'll also need your own domain name.
At the bottom level of hosting is shared hosting. For a couple of dollars a month (and often purchased cheaply at the same time as your domain name) you get an account on a computer that allows you to upload web applications and do some configuration of the web server.
Most of these hosting services offer a "control panel" that allows you to change some of the configuration, manage files and even install a fair range of software easily. My web host offers Wordpress, Joomla, MediaWiki, phpBB, a guest book, picture gallery, Ruby on Rails and a site engine all installed easily and quickly, often with just one click and a single web form.
You may find it difficult to install some software as you cannot change such things as the Apache or Perl modules installed as you are only one account on a computer. You also are at risk of another account on the computer tieing up the system - a web application hitting a race condition in Apache, for example.
For just a little more some web hosts offer a virtual server. This uses virtualization software on a computer to offer a virtual computer that you control yourself. This is the best system for almost everyone to start with. You have almost total control including all the Apache, Perl and PHP configuration. Most still install some sort of control panel for you to use. The underlying virtualization software significantly reduces the risk of your "server" being over run by one of the other virtual servers. In fact they do such a good job that even large server farms will run multiple boxes running multiple virtual servers.
All of these three levels offer advantages such as high availability and automatic backups. Both shared and virtual server hosting offer excellent customer support at exceptionally low prices.
This level of hosting will be perfectly acceptable for almost all small to medum businesses. You can even have quite large online stores and popular sites using large amounts of bandwidth on a virtual server. I've known sites that have mutiple virtual servers, one for the web site, one for the store and another for the database back end.
Oh, one final note. My favourite web hosting company is WestHost, good service, good prices. If you click on the link and order I'll even earn a dollar or two.