Someone needs to run the servers; someone needs to write the code; someone needs to make sure the pages are pretty; someone needs to make sure people find out about the site; someone needs to make sure everyone gets paid. All of these can be the same person or multiple people.
Exactly what you need depends on what you’re trying to do. A video site needs bandwidth, streaming-video architecture, redundant servers, and a lot of marketing, but not a whole lot of coding. And lawyers, lawyers, lawyers, because of the potential for copyright infringement.
Other sites have different needs.
For a startup, you’re looking at hiring as few people as possible to get the essential work done. Don’t think of it as “hiring a J2EE guy” and “hiring a system administrator,” think of it as “hiring Joe who is a strong J2EE developer and who knows enough about Linux to keep a server going” and “hiring Jane who’s a brilliant web designer who knows usability, and who can code enough Java to communicate clearly with Joe.” (And you have to be willing to take a step back: what happens if Dick says, “why the @#$% are you using something heavyweight like J2EE, when we could get this done with 100 lines of Python?”)
The roles aren’t that cut and dried, and the people you hire for a small company will necessarily be wearing multiple hats. The only place jobs get that clearly distinguished is in big, ossified companies.
Also, if you’re thinking of starting a tech company, the first thing you want to do is find a tech-savvy partner who can answer questions like this. Without a tech-savvy person with a financial stake in the success of the business, you have no way of evaluating how successful you are and how well you’re progressing towards your goals; consultants make money from prolonging problems, not solving them.