Sometimes when a report seems to run "forever" or timeout, the problem stems from either having an underlying query that is written as "Select * From...." -- Seems like SSRS report manager gets tripped up by the "*" once in awhile, especially if the underlying fields have changed.
Another issue that sometimes causes problems is parameter sniffing. If your query uses a stored procedure where reporting services passes a parameter value, you may be running into parameter sniffing. Plenty of articles on SSC about easily overcoming this type of problem.
Just my two cents.