It's very difficult to find a good web hosting service.
And, trust me, it's a huge pain in the neck using a useless Hosting Service with poor technical assistance service.
Especially when you write your own applications to be run on the server.
As said by John Conde, it's true that most Web Hosters are simply reselling the same type of machines (same systems/servers, with the same OS and the same control panel), most are even resellers of resellers of resellers...
For this exact reason, the real difference in now days is not made so much by the machines (unless they are overloaded obviously).
The real difference is made by the SERVICE: how good the Hoster's tech departments are in managing those servers, how fast are in fixing issues, how nice and proactive they try to be when you tell them something does not work.
An example for all: you might have a PHP script that makes the server show a 501 Internal Server Error. You are a good coder and you find out on your own what's the exact line of code in that script that makes the server show a 501.
You then copy that single line in another script to do some test on the same server and you eventually see that this new script is still making server show 501, so it's definitely that line of code.
At this point what do you do? You start changing your app, but that's not a good idea cause it might take you a lot of time to workaround such an issue and what happens if your workaround makes your app work on that server, but not on the server of another hoster?
Do you make a different patch for any type of hoster???
No, you pay for the hosting service, you pay for technical assistance, therefor you open a ticket on your hoster an you tell them: "I have prepared a PHP script made of just one single line of code (or just really few lines, to show the issue) that shows the server go 501 Internal Server Error, could you plz help me?"
Many web hosters (like these: www.inmotionhosting.com) will simply reply you: "Sorry, but we don't look into code" (even if it's just one line of code), those are the types of web hosters to absolutely avoid.
Some other hosters like these (www.qualityhostonline.com) will kindly reply you: "We look into it", and later they discover it's a too strict rule on their Apache mod_security that makes the server run a 501 Internal Server Error. They fix it and you solved all your problems.
The examples provided above (both coming from my personal experience) might help you also in seeing how difficult it is to discriminate among hosters without being deceived by their marketing stuff. They both have nice webistes, full of awards and all those "What they say about us...".
Unfortunately you can discover this only by experience using their services or by following peoples suggestions who have used those hosting service before.
Anyway some way to try a web haoster are:
send them pre-sales question that should be ALSO TECHNICAL, maybe also about things that you don't need, but just to see if the guy knows what you are talking about.
You could ask for instance: "Can I make .htm file on you server to be processed by the PHP processors". If they reply you something like: "No, you can't serve HTML files with PHP processor", or even worst they find a ridiculous excuse saying that the server would get overloaded, It definitely means they are useless tech guys, this is the typical hoster that at the 1st problem it happens you will understand what a big mistake you did in buying their service.
By doing (1) you also test how fast they reply (and if they reply, some do not reply at all even on a pre-sales question, I don't think I need to tell you that these hosters must be avoided completely).
ping their main website, many turn down ping on server because they say it might create a security holes. Avoid these hosters, either they want to mask you where their server is located, or even worst they really think ping cause security holes. In nowadays ping can cause secuirty holes to servers managed by useless tech guys who do not know how to prevent those types of attack (generally NOT expert people), do you want those NOT expert people to manage your server?
By doing (3) you can also see where their servers are, if the ping takes too long compared to other local websites, it means their server is somewhere on the moon not in US. (I know they could use different servers, one for their website in US and one in India for your website, but they will have different ping times and you can definitely complain about this when your website is up. They will have then to give you a good explanation or totally refund you).
Don't trust who is selling Unlimited of Whatever. A basic Physics law says: "Nothing can be created or destroyed, everything can be simply changed". Now selling Unlimited means creating something from the vacuum that is not possible in Physics. So they are already cheating on you even before saying "Hello" to you. True that if they give you 25 GB of space for your average size website, you will feel it's unlimited space, but then why don't they just write down that they give you 25GB and not unlimited instead of cheating on you?! It's a way of thinking, morover it's highly probable that they rae simply overselling the space they have. And if their managers/marketers who created their website think in this way, it surely means it's a company driven by marketing guys, the typical guy that does not know anything about tech, but he thinks that is all pretty simple stuff, that it's not a problem. Which is also true from their point of view, because if their server goes down they won't have big problems in loosing you as a tiny customer, you provided them what, 25 bucks per year?! But you won't feel the same when your customers will scream calling you on your mobile-phone and shout at you seeing their websites (or even wosrst their emails) being down!