Well, it can honestly vary, and a lot of it can be just trial and error... We have 384mb ram allocated, so our config is tuned low:
<IfModule prefork.c>
StartServers 8
MinSpareServers 5
MaxSpareServers 20
ServerLimit 30
MaxClients 30
MaxRequestsPerChild 8000
</IfModule>