SQL Server Timeout Expired in ASP.NET C# WebForms application
Sounds like a poor performing query that is crossing over the default 30 second timeout for .net connections.  SQL Server will process a query for as long as it takes, but the application is deciding to stop the show after 30 seconds.  

You should fire up SQL Profiler and capture long running transactions (ones that have duration > 1 second) and transactions that require more than a few thousand reads.

Once you have a few of these queries isolated, you can begin to examine them for poor performance (look at indexes, joins, etc.)