where are you gettign the timeout?
is it on the server or application
timeouts may be because the server is overloaded, so you may need to analyse the server, server log and try to work out if that overloading is down to poor query design or just simply the box can't handle the volume and type of traffic.. if its a hardware issue, then as a firsts step chuck more memory at the server, and or at the MySQL process
it could be a network issue, ie the network infrastructure isn't capable of supporting the application. it could aslo mean that you are pumping too much data up and down the line, it could be that refining your queries to extract only what you require would be the way forward
however it maywell be a softweare issue in as much as you have rogue SQL which is consuming mnore of the server's resiurces than it should, so analyse your queries
seek to find which queries are the hogs and then work on thoise to see if you can refine the SQL
Im not a MySQL DBA (or any kind of DBA for that matter) so I don't know where you would start
I'd rather be riding on the Tiger 800 or the Norton