Routers/firewalls will provide access control and routing between your network and your ISP's network.
Switches connect all of your internal machines. Money spent on managed switches will make your life easier. Don't think the cheap switches are any bargain... when you're under heavy load and you can't figure out what's happening, you'll curse the saved money. Having said that, you can get good 48-port managed switches for $1k.
Load balancers distribute incoming load among one or more servers. You can go very expensive commercial solutions here, or roll your own with some Linux/Unix knowledge.
Our firewalls are OpenBSD with PF running on rather low-end boxes and regularly handle 100Mb/s of traffic with no problem. We have a primary and standby that sync state between them, so they are fully-redundant.
Those firewalls load balance incoming port 80 connections across 3 apache servers that serve static content and do SSL and all sorts of mod_rewrite to distribute things to the app servers. These are about $2k Dell machines, and any two machines can handle the load, which peaks around 500 hits/sec.
Our app servers do the heavy lifting. They are load balanced using a combination of mod_rewrite on the apache servers and LVS. 12 tomcat machines with lots of ram and processor.
You will need to estimate a few things...
- How many visits/page views/hits to the site during peak times.
- Figure out the other two variables from the one that you know (each page view is 10 hits with images, etc).
- Test your application servers to see what they comfortably can handle, then figure out how much redundancy and extra capacity you'll need.
EDIT: Our infrastructure served about 12M visits last month, so similar size. You care more about visits than uniques... and you can estimate how many hits and page views a visit generates on average.