This functionality is built into the Windows Team System (database version or package). I tried this and the older version of Red Gate SQL, and both of them are great for working. There are also some free tools (see this thread), but I have no experience with any of them.
source share