In general, all good hosts are quite candid about what you do and do not get for your money.
I would say that you normally get what you pay for and while there are some well performing hosts that offer low cost accounts, you should expect to pay a reputable company a reasonable amount for their services.
Be clear from the outset on what you want and make certain that you get it.
If you want Apache hosting with all the bells and whistles, go for it and don't accept any less than you need. Likewise with Windows hosting.
Keep in mind that all hosts tend to offer standard accounts on a tiered basis where the more you pay the better the feature list, but a lot of the better hosts will also happily create a custom account for you if your requirements are very specific. You will often pay slightly more for this but if you have very particular requirements the cost will be worth it.
There really aren't too many pitfalls at all if you go with a good host. Obviously mistakes can happen, as they can in all things, but hosting usually goes either very, very well or spectacularly wrong. The ones we tend to hear about are the latter - nobody tends to mention those host(s) they have had excellent, trouble-free service from.
If in doubt about any aspect of a hosts accounts, you should get conformation of your concerns, in writing, before taking an account on with them. This is where deciding on your requirements comes into play - if you need multiple subwebs and loads of email addresses, make certain these are features of your chosen hosts accounts.
I have usually stayed with just a couple of mainstream hosts over the years and with one or two scattered exceptions the service I have enjoyed has been little short of superb. Most of the few problems I have encountered have been minor and they have been quickly fixed.
I've always said that I am far more concerned about how well a problem is rectified rather than that the problem ocurred. Obviously, in an ideal world, we wouldn't get any issues at all, but...