In many modern web applications, you are often spending a lot of time on an external resource: a database, a cache server, a filesystem, etc. In this case, a threading model helps by not reserving memory resources for multiple processes that are going to spend most of the time idle.
The benefit of the forking model is primarily when you have existing frameworks that aren't aware of threads (most PHP, Ruby, Python, etc. applications). Making existing apps thread-aware can take a huge amount of time and effort. In some cases, such as where the app uses a lot of CPU, RAM bandwidth, or I/O with resource contention (i.e. a single-channel disk controller), processes aren't that much of a disadvantage.