Quoting Matthew's explanations:
Odin is an internal Samsung tool used for flashing firmware to their devices (via Download mode, bypassing recovery etc.). Importantly, it also has the ability to repartition the device storage based on a .pit file, which can save you from softbricking (when flashing goes wrong and recovery/the bootloader fail). It is not open source and to my knowledge they have not intentionally released it — a few versions have been leaked. For what it's worth, I have used the version posted here without issue.
Odin3 (Source: XDA-Developers; click image for larger variant)
Heimdall, however, is open source and duplicates the functionality of Odin. It claims to be more reliable as well, in addition to being cross-platform (Odin is Windows-only).
Heimdall (Source: WebUpd8.Org; click image for larger variant)
As the source of the image states: The application officially supports Samsung Galaxy S GT-I9000 (8GB) from UK and Galaxy S GT-I9000 (16GB) from Australia, but users have reported that it also works with the Captivate, Vibrant, Fascinate, Mesmerize, Epic 4G, Galaxy S 4G, Infuse 4G, GT-I9000T, Galaxy Tab (7 and 10.1 inches), Galaxy S II, and the international GT-I9000.
Both tools appear to work best with Galaxy S devices, so if you're using another device you probably want to ensure someone else has tried it and succeeded. Another note is that they use .tar packages layed out differently than the normal update.zip format used by recovery and OTAs, so you need to get the proper package for it to work.
See also: heimdall