I was comparing some notes with a local company that friends of mine work at. The application in question used a typical modern Java stack (WebWork, Spring, Hibernate) and in production has a bunch of machines to enable it to scale up.
The application is a new beta site, and as such doesn’t have a lot of traffic yet (not published highly).
Ironically, one of my current projects has millions of transactions a day, and runs on a lot less iron.
These days, with the right app (one that you can cache nicely) you can get scalable performance without breaking the bank at all.