HashCatalog is a program that can find duplicate files in one or more folders, or between 2 lists of one or more folders. HashCatalog can also create an xml database file containing a listing of files with hashes.
Synclair is a tool for diff'ing and synchronizing directories. It also includes a utility to find duplicate files (by name, or md5 hash). It is a command line tool, written in Java.