I've never paid attention to wait unless I'm having an issue so I guess I would say if it is mostly low thats a good sign.
The server was overloaded when you were running top.
15 php-cgi and one mysql processes all fighting for swap and CPU time.
Based on the info you provided I would say this issue was caused by too much web traffic.
If you have email and other processes on this server that only adds to the problem.
My suggestion is to edit your apache configs and reduce the number of php processes that are allowed to run at a time. You need to limit the php process to an amount that your hardware can handle. When you have too many processes running the CPU will waste a considerable amount of time just switching from one process to another.
Also, reducing the number of php process will reduce the amount of memory needed.