First, what's shared web hosting?
Shared web hosting is the most common form of hosting out there because it comes fairly cheap. The "shared" part means that your web site and online files share hard drive space with other customers on the same computer. Shared web hosting accounts usually come with a limited amount of space and a certain amount of bandwidth.
What about dedicated web hosting?
Dedicated web hosting means that an entire computer, commonly called a "server" in the hosting world, is dedicated to hosting your files on the web. You get all the hard drive space, you get to have whatever software you want on it, and you pretty much get to make the calls.
Dedicated web hosting servers are much more expensive than shared hosting because you are leasing an entire computer for a certain duration of time. You pay for the cost to upgrade the server, you pay for the software on it, and you pay for the cost of keeping the web hosting server in a secure facility with a rocking bandwidth connection.
A third option: using your own computer for web hosting
Your computer is hooked up to the internet, so why not do your own web hosting on your computer? You already have the hardware infrastructure in place, so why not?
There are a couple of good reasons to leave web hosting to the experts:
Your house or appartment is not a secure facility
Most web hosting providers have their servers in a co-located secure facility. This means that their servers are in a building that has a guard at the door, that has a backup generator, that requires a keycard or code to enter, and that has emergency systems in place in case of a disaster.
It's tough to configure a web hosting server
If you've never tried configuring a web server, you're probably a happier person. Getting the right programs in place, with the right configuration, for the right uses, can be a huge headache.
Dedicated, shared or home-grown hosting?
For most web sites, a basic shared web hosting account will be the easiest and least expensive route to take. A dedicated host should be considered when 1) your bandwidth and hard drive space needs exceed what is offered by a shared hosting account, or 2) you need to be able to configure your web server in a way not available with shared web hosting.
Running your own web server from home or your place should only be considered if you need special freedom with your server, or you have a lot of extra time on your hands.