Shared vs. Dedicated Hosting
Shared hosting is widely used today by many websites- and for a few good reasons. A shared hosting provider is a provider that hosts your website along with several other websites, all on the same IP address. This IP address is shared among all of the websites in the server- which can be a major problem. Most search engines today blacklist, or ban, IP addresses of malicious or misbehaving servers- not the domain names. What this means is that if another website that is hosted on the same server, and is malicious or distributes spam, that your website could potentially be blacklisted as well. With dedicated hosting, you don't have to worry about this same issue. Often, you can assign several IP addresses to your dedicated server, which will appear to search engines such as Google as separate servers.
In addition to security issues, shared hosting servers tend to be the slowest form of hosting. This is a matter of logistics- if you split the same connection among several hundred websites, there is going to be a performance impact. In addition, if a CGI or PHP script is written incorrectly by another website owner on the same server, it can slow down the performance of your website as well. However, with a dedicated server, your server will have a direct connection to the hosting provider's Internet gateway which will not be shared with other websites. In addition to this, your server will also have only the workload that you give it- if you use only a few CGI or PHP scripts, your server will run perfectly fast.
The main advantage to running your own server is that you are responsible for security and maintenance updates, as well as backups. I cannot remember how many times a hosting provider has deployed an update (which went horribly wrong), and restored the server without even contacting the client. In many cases, the client had to contact the hosting provider to ask what happened before the hosting provider even admitted to any error. Placing this responsibility in your hands allows you to ensure that all updates are installed, and that system backups are religiously followed.
In addition, with a dedicated hosting account, you can also easily install extra server software if needed. If you want to try out a new Apache module, you have the freedom to install that software to try it out. Try doing that with a shared hosting provider! Simply put, shared hosting providers typically do not install extra software on their server without an act of congress!