It has a lot to do with the nature of the sites. Lots of static HTML with little images, not a big deal; lots of sites.
Lots of images, either RAM or disk speed will likely be the issue, or network performance. Probably similar for heavily trafficked servers in general. But if you get to build it, you can adjust hardware requirements to what you expect the load to be . . .
At a certain point, it becomes necessary to split stuff up --- consider how Yahoo! and Google might do things . . . lots of boxen.
Then, are there any other services on the box? If it also runs the SQL server, or mail, this can be a factor. A heavily trafficked web server that also handles mail and does spam-checking can get behind in a hurry if you're not too careful . . .
Next, keep in mind that the quality of the sites' scripts, if any, may have a lot to do with the issue. Not everybody will feel a great need to optimize their PHP, their Perl . . . some will install stuff other people wrote and not know how to configure it very well . . . unless it's you who handle all the sites personally....
Finally, remember that, generally speaking, while you can host many sites on one server with http:, when you start using SSL and Apache, only one [url]https://[/url] site per box is the rule AFAICR . . .
As for reading, I find this rather helpful: http://www.defcon1.org/html/Software_Articles/Webserver/webserver.html
Note that I've seen a couple of boxen that host literally hundreds of "mom and pop"/small business websites. FreeBSD and some of the "hotter" Linuxes are probably a great choice for this...