Check your joins, it may be that you have unintentional cross joins. Otherwise work out why you have duplicate rows and fix the source of the problem, don't fix the symptoms.
Distincts are expensive, they force SQL to sort the resultset, requiring temp work tables and all sorts of mess.
Gail Shaw
Microsoft Certified Master: SQL Server, MVP, M.Sc (Comp Sci)
SQL In The Wild: Discussions on DB performance with occasional diversions into recoverability
We walk in the dark places no others will enter
We stand on the bridge and no one may pass