TrID[1] has a number of definitions for various executable files, but it's designed for general-purpose file format identification. PEiD[2] is built specifically for identifying packers, compilers, etc. for PE files, and should therefore be able to identify a far wider array of them (the site claims it detects over 600 PE signatures), but I've never done any checking myself, and the project unfortunately seems to be discontinued.
[1] http://mark0.net/soft-trid-e.html [2] http://www.peid.info/