Hi Biju,
Regarding the first question, yes, first check how they are connecting. Connection libraries support query timeout setting – so find out what they are using and then you can narrow it down accordingly.
Attention events will indicate that a query was canceled by a client either due to an actual cancellation or a query timeout – so that is one method. Regarding the root-cause, there could be a number of reasons – but if you suspect memory pressure or large memory grants, there are associated methods to explore this via DMVs. And if you have the query stats available (like this post demonstrates), you could at minimum look at the memory requirements of the estimated plan.
Big topic, but a few links that are dated, but still applicable to the subject:
http://blogs.msdn.com/b/sqlqueryprocessing/archive/2006/11/14/query-execution-timeouts-in-sql-server-part-1-of-2.aspx
http://blogs.msdn.com/b/sqlqueryprocessing/archive/2006/11/22/query-execution-timeouts-in-sql-server-part-2-of-2.aspx
http://blogs.msdn.com/b/khen1234/archive/2005/10/20/483015.aspx
HTH,
Joe
]]>