Ideally to minimise lag (delays between the web server and visitors PC) hosting should be in the country where the website does the most business for best SEO results but with faster Internet speeds around the planet this is less of priority requirement for many websites so for many it boils just down to cost & features available.
For most clients in the UK I recomenend TSO it's a small company with servers located at the Blue Square Data Centre in Maidenhead. Great customer service even at odd hours of the night.
Stateside I've tried several regular hosts with disappointing results. Am currently with Hostgator who are treating me rather well at this time.
I've also got several prototype sites that are resource heavy hosted completely inside the Google App engine using the free quota allowence.
For those on a budget I suggest using free web hosting providers such as X10 hosting and 000 webhost who have improved their performance & features dramatically over the last couple of years by being completely ruthless with those who would abuse the services like spammers.
Of course if you are a creature of the city and never far away from a free WiFi hotspot or have an generous broadband allowence at home you can become a web host, all it takes is an old PC.