There's always MS Data Quality Services (DQS). It allows for data cleansing, matching, de-duplication and an array of related data quality services. It's not easy to use but does the job, and you can't beat the price.
"I cant stress enough the importance of switching from a sequential files mindset to set-based thinking. After you make the switch, you can spend your time tuning and optimizing your queries instead of maintaining lengthy, poor-performing code."-- Itzik Ben-Gan 2001