Shared server hosting is very inexpensive, ranging from $3-25/month. It's called "shared" because you share a server's storage, memory, processing, and bandwidth resources with other customers, possibly hundreds and even thousands of them. This is true of all forms of hosting except dedicated server plans, but shared hosting typically refers to the least sophisticated way for server resources to be shared: multiple accounts on a single server running a single instance of Linux, Apache, mySQL, and PHP -- the standard LAMP stack. As a single point of failure, inevitable hardware failures and maintenance operations on the server will affect a large number of customers from time to time. The most common source of trouble is the fact that all the users are limited to the resources of their one server, and too many of them may want to use those resources at the same time. A good shared host who does things right will be able to balance the load pretty well and maintain good uptime and response times. At the same time, this is a very complex, unpredictable system, and it is hardly immune to slowdown and failure, so it's a good idea to monitor performance before you commit.
To work as a business venture, shared hosting has to be oversold. But there is overselling and overselling. All shared hosting is "oversold" far beyond the actual capacity of the host's servers; there is no way for the hosts to make money otherwise. Not everyone is going to demand their server's resources at the same time, so if the actual load at any given time can be distributed well over the host's servers, then it will work just fine. (Here's how Site5 explains the way they do it.) The problem even with good shared hosting that has efficient load balance is that you can't expect to draw on limitless bandwidth and (more importantly) processing time. If you start to use 50-100GB per day--which you could easily do with a Wordpress blog that gets 1,000 visitors a day--you may start to be the one causing bottleneck issues for other customers. You'll probably be asked to upgrade your account to a more suitable package or leave. If the shared hosting you buy offers "unlimited" storage or many terabytes of bandwidth, don't take it literally--look at their resource usage policy instead. Chances are it will define the very specific real policy of the host which allows them to restrict you at very low levels of usage. That doesn't mean they'll literally enforce it--they just want a lot of discretion to dump problem customers. If you don't like that, you need some kind of dedicated hosting.
Even under moderate traffic loads, contemporary web applications like content management systems may make heavy use of your shared server resources--processing, memory, databases, bandwidth, storage, etc. Your applications and others like it on the same server may be the ones that bring the server to a crawl, and your site may go offline--or be taken offline by the host--if that happens. Better hosts will keep you going if you're within their terms of service, but you may be asked to upgrade your account. If you expect to grow, think ahead about your options for scaling without having to change hosts, and always optimize for top performance. Unfortunately shared hosting generally doesn't allow you to track and optimize performance with great sophistication, but there is still a lot you can do. (See JoomlaPerformance.com; the advice there is broadly applicable to all Linux/Apache/PHP/mySQL server applications.)
Normally the only limits you have to worry about in shared hosting are on CPU and RAM resources. Hosts usually specify these limits in great detail in the "small print" of a Terms of Use / Acceptable Use / Resource Use policy--which will be subject to change without notice. While every host defines their actual use limits on shared hosting their own way--some are very restrictive and specific while others are vague and non-specific--they will generally exercise tolerance and discretion on a case-by-case basis with their customers. In 2010 a good rule of thumb is to expect a traffic load of 800-1,200 unique visitors/day on a site using a database-driven application like Wordpress (with basic caching in use) will get you asked to upgrade to a more robust plan or go elsewhere.
Ultimately the main drawback on a shared server is that you have no control over its resource availability and can't predict it either. You are sharing one server's resources with a bunch of other websites--maybe 500, maybe 5,000--so you can get a big "bad neighbor" effect. (The highest number of domains pointing to a single server I've ever seen was over 16,000--probably a dumping ground for defunct, untended, seldom-used and moribund accounts someone is still paying for, or else a server where a domaineer/domainer parks their holdings.)
A quality host that doesn't overdo it and is good at load balancing may be more than adequate for most small businesses and individuals who aren't running complex web applications. Use services like domaintools.com to see how many sites are on a single server, and choose hosts that make a point of not overloading. Rochen is especially well-regarded in Joomla circles as a quality, performance-oriented host with packages that include tiers of shared hosting. WebFaction also has a good reputation and offers a lot to web application developers using Django and Rails.
"You get what you pay for" tends to good rule to live by. The big, cut-rate shared hosting resellers get by being "good enough" most of the time for a very large customer base, but they can radically alter in their quality of service over time as they move large swaths of their customers around different infrastructure providers. That said, I've had good experiences with Site5, and Hostgator is highly recommended by many of its users. I've even been told that GoDaddy is adequate, and I have to admit others like 1and1 and BlueHost are not bad for the average low-end user. I would not put anything mission-critical or eCommerce-related on them, but of course many people do. If you're going cheap ICDsoft, AN Hosting, and A Small Orange seem to have good reputations, although MidPhase, which owns AN Hosting, does not.
If you do get into shared hosting, at least be aware of what you're getting into. You've got an apartment at best, some space on a floor of a flophouse at worst, and the mailserver is a common toilet. With too many tenants, or just one who behaves badly, your peace may be shattered. You may be blacklisted as a spammer because someone else on the same server was spamming. You may be hacked because someone else was hacked. You may be knocked offline because someone else's site got a lot of traffic or started using an application with very inefficient code. On the upside, with well-managed shared hosting, you will not need to worry about server administration and highly technical matters. Yet without a basic understanding of what you are getting into, you run the risk of choosing a poor host and doing things that are sub-optimal, from a security and/or performance standpoint. Particularly with servers running PHP as an Apache module, there are some inherently less secure aspects of shared hosting.
Reseller Accounts
One way to beat the main problem with big shared hosting providers--the bad neighbor effect--is to join in the reselling, especially if you want to build more than one site on a single hosting account. You don't actually have to resell anything.
Many shared hosting providers offer reseller accounts, which should get you a bigger and clearly specified piece of the shared server pie with fewer (potentially bad) neighbors. A reseller account lets you pick your neighbors, as tenants subleasing their hosting from you, and you can choose to have none. If you buy a reseller account for $20-30/month you may even find it about as good as a VPS for the same or a higher price, and it may even be easier to operate than other packages from the same host.
I recommend not being a reseller of resellers. If you are going to resell, use a host that owns its own servers. Know what you're doing and add some value to justify your services. A lot of people resell big hosts like GoDaddy or HostMonster, including kids and people who don't really know what they're doing. It's like someone trying to be a landlord without owning a building by subletting apartments they rent from the building owner or even another sublessee. This is a model for business failure and attracting criminal tenants. There are few to no rules or regulations over the industry, so abuse is fairly common. Don't be this, and don't buy this.
If you do use email on a shared hosting account and want your messages to be delivered, buy a dedicated IP and make sure it will apply to your mail accounts to differentiate them from any abuse emanating from your your server and its IP. If there is just one spammer who gets blacklisted on your server, you will be blacklisted too if you're using the same mailserver with the same IP. I've seen this blacklisting problem come up with every shared host I've worked with for long, as well as clustered hosting where IPs are shared. Learn more about this problem and how to evaluate hosts' mailservers at HostJury.com.