You can get a single beefy box and run apache/nginx/lighttpd(what???), mysql, memcached and anything else all on one system and there are certainly people that make it work... but given the number of times I have been called in to fix these kinds of scenarios and make them work properly, I can say from experience that if you expect any amount of traffic you invest in the ability to abstract these various services away from a single machine with ease (or just have them separate to start with).
Perhaps if you do not have a lot of operating capital to begin with, virtualization/cloud options would be a good place to start. You can have with virtualization that single beefy machine and still separate out the various pieces of the infrastructure and then allow to add additional virtualization hosts to the cluster usually with a click or two.
I am happy to answer other questions to scaling (within reason) if you post in response or mail me. I'd rather you start things in a good direction and give away free advice than see a company fail because of architecture decisions which hobble expansion in the future!