When your site become more than trivial, shared hosting $4.95 plans just dont cut the mustard.
When your site hits even more users, just opting for dedicated servers is not enough either. You need to optimize several layers.
The idea is to make best use of resources. Reduce the size/time of web pages. Then using caching to deliver repeated content, and only the web and database servers to deliver unique content.
Firstly, and most obviously, is the website itself. Like smaller images, tighter HTML with CSS, inline the images, use sprites – and generally drive down timings and sizes using browser tools like yslow.
You can move large static images to CDN. This is real easy with wordpress, there are plugins that will move the images and downloads to CDN for you.
After that – there is still more options.
You need to start architecting for performance. Starting with a 4 node system. With 2 caching servers running and 2 backend combined web and database servers . Circular replication between the backends is required for data and session management.
More simple models exist also. 1 caching server, and 1 web and database server.
Seperating the database server out simplifies things also, as you dont need to replicate. So 1-2 caching servers, 1-2 web servers, and 1 database server is a reasonable model also.
Query caching in the webserver also speeds up lots of applications. If you are php based you can cache the compiled code.
Let me know if you need a cloud consultant to review your web site.