You need to get a feel for what's happening in the DB. Check current activity to see what is being run against the system - there may be big queries running, statements holding lots of locks, blocking etc.
You could also examine some sample statements that are now running slowly to look at the actual execution plans & statistics - are they hitting the right indexes or generating table scans?
Are you indexes heavily fragmented?
Has anything major happened recently like a big growth in data volume after a bulk import or similar?
Index fragmentation is internal to SQL Server (and a separate issue from physical file fragmentation at the OS level). You should look at putting in place a regular schedule to deal with fragmentation.
Brent Ozar has done a good series of posts on it http://www.brentozar.com/archive/2009/02/index-fragmentation-findings-part-1-the-basics/. It includes a link to a good scrupt defaging indexes that need it. Alternatively if you could setup a maintenance plan to do it but note the limitations mentioned in the article.
At a minimum you need to consider the impact of these maintenance tasks running against a live system - the ideal is to schedule the work to run out of business hours if possible.