I had high hopes that OS X 10.4 would ship with a higher default maxproc. My old post on this subject still worked for 10.4, but what a pain that is, and you have to redo it after some System Update operations.
I just finished reading an article on launchd over at AFP548, and he mentions launchdctl for controlling launchd. One thing this utility allows you to do is set the resource limits for things that launchd launches. And one of the things that launchd starts is the WindowServer!
So, you just need to have launchd launch processes with a higher limit. If you run launchctl limit right now, you will see that the maxproc is set to 100. To change this, you need to create the /etc/launchd.conf file (if it does not already exist) and add the following line:
limit maxproc 512 2048
The first number is the soft limit and the second number is the hard limit. You can pick different values if you want.
NOTE: I've seen mentioned (at some place that I can't remember) that if you did an upgrade install to 10.4, your system might not be running launchd. This trick depends on launchd being PID 1 and thus launching WindowServer. If init launched your WindowServer, I'm afraid the old method will have to be your work around. You can check the PID of launchd by typing ps ax | grep launchd; the PID is the first number listed.
[robg adds: Read the referenced post for some background as to why you might want to increase the process limits; it probably doesn't apply to most typical users -- for example, I've never hit any process limits, so I'm not going to change the defaults. But if you have, this seems to be a good solution for 10.4...]

