Thanks to the team at TechRepublic.com and BOL, I have used CTEs to delete duplicates with ease in SQL Server 2005 and higher. Learn more about CTEs at TechRepublic. Here meat of the article a sample:
;WITH SalesCTE(Product, SaleDate, SalePrice, Ranking)
, Ranking = DENSE_RANK()
OVER(PARTITION BY Product, SaleDate, SalePrice ORDER BY NEWID() ASC)
DELETE FROM SalesCTE
WHERE Ranking > 1
Very easy and handy! Check out BOL for all kinds of information regarding Dense_Rank(), NEW_ID(), and PARTITION BY. While you’re there, check out RANK(), NTILE(), and ROW_NUMBER() I’m sure there is a combination that will help your current situation. Please note, this is for SQL Server 2005 and above.