I'm a big fan of the kdiff route because it's quick and clean . Note: I use diffing for writing signatures on malware. Most of the time I need a simple visual of the different instructions. If you need to dig deeper go the BinDiff or DarunGrim route as mentioned by Mick.
In order to use kdiff to diff the binaries you will need the disassembly output generate by IDA. The following script can be used to create the assembly output for all executables in the working directory.
paths = glob.glob("*.exe")
ida_path = os.path.join(os.environ['PROGRAMFILES'], "IDA", "idaw.exe")
for file_path in paths:
subprocess.call([ida_path, "-B", file_path])
Execute the script.
C:\Documents and Settings\Administrator\Desktop\diff\python make-asm.py
Thank you for using IDA. Have a nice day!
C:\Documents and Settings\Administrator\Desktop\diff>dir
Directory of C:\Documents and Settings\Administrator\Desktop\diff
10/25/2013 11:16 AM <DIR> .
10/25/2013 11:16 AM <DIR> ..
10/25/2013 11:16 AM 40,604 a.asm
10/24/2013 08:35 AM 9,938 a.exe
10/25/2013 11:16 AM 368,957 a.idb
10/25/2013 11:16 AM 40,657 b.asm
10/24/2013 08:35 AM 9,969 b.exe
10/25/2013 11:16 AM 368,957 b.idb
10/25/2013 11:15 AM 218 make-asm.py
Select the two .asm files, right click, Kdiff, Compare. Nice and simple output.