I've been using visipics which i found out about on lifehacker which works very well.
This is the excerpt from the site
I recommend VisiPics (pictured above). It scans the actual photo
content of each image file, and so can take some time to tally up its
findings if you've got a huge, huge database, but you can fairly
easily let it run in the background and do your normal browsing and
work. Matches are shown together, a sliding scale of matching
looseness is offered, and while it's a shareware app with some locked
features, it offers enough as a freeware app to do some serious
cleaning.
How do you get started with VisiPics? Choose your photo folder from
the list in the top-middle row, hit the right-facing arrow with the
"+" sign to add it to VisiPics' queue, then hit the Play-style button
in the middle to start scanning for duplicates.
Note: If you've previously used Picasa, iPhoto, or other photo
management suites to organize and edit your photos, you may find lots
and lots of photo duplicates. That's because those applications create
folders of "Originals" to allow you to undo changes you make to
photos, along with caches of thumbnail images for fast browsing. If
you're not using these apps anymore, and you're sure you won't want to
undo those changes, go ahead and remove those folders and duplicates.
Otherwise, keep them, and remove their folders from your searches.
Speaking of Picasa, Google's photo manager has a "Show Duplicate
Photos" option in its Experimental menu, but that's exactly what it
is—very experimental, and not all that clear about what you're
deleting. You're better off going with an app that makes its findings
clear.
Then there's also dupeguru from this answer on superuser