Se você está servindo conteúdo estático (html ou html gerado por algo como tipo móvel) então a resposta é, para qualquer hardware contemporâneo, muito. Onde muito provavelmente é medido em dezenas de milhões de solicitações estáticas por dia.
Nesse tipo de configuração, a primeira limitação que você enfrentará será o tamanho da conexão de seus servidores ao seu data center. A maioria dos fornecedores de servidores dedicados irá iniciá-lo com uma conexão de 10mbit, o que é provavelmente a primeira coisa que atingirá o máximo se você se aproximar do número de solicitações citadas acima. Geralmente, eles mudam você para uma porta de 100 MB por pouca ou nenhuma alteração, mas esteja ciente de que isso significa que você tem um aumento de 10 vezes na rapidez com que o limite de largura de banda (se tiver um) pode ser esgotado. Preste muita atenção e monitore seu uso mensal de perto, para não pagar grandes taxas excedentes.
Então, uma vez que você tenha uma conexão de 100mbit, o próximo problema em potencial será a velocidade de obtenção dos seus dados do disco rígido para a rede. Mesmo em 100mbit que ainda é apenas 12mb por segundo a partir do disco rígido, o que é trivial para hardware contemporâneo. Dada uma quantidade razoável de memória livre (para cache de disco) e uma boa mistura de tamanhos de arquivo (de algumas centenas de bytes para o seu favicon.ico a algumas centenas de kb para uma grande foto), você provavelmente ainda desligará uma conexão de 100mbit antes de atingir uma carga séria.
No entanto, tudo isso pressupõe um site que exibe conteúdo estático, o que quase nunca é verdadeiro. Se você estiver usando um framework web como Django, Rails, Grails ou qualquer uma das centenas, o seu primeiro bottlekneck será CPU, o segundo será memória e o terceiro será a quantidade de simultaneidade que seu aplicativo pode suportar.