It really depends on the specific chip being discussed, however its usualy stuff like cache, socket type, 2/4/8 way configurations, bus speed, inclusion of PCI-X capabilities etc.
Course sometimes there is no difference like between an Opteron 165/170/175/180/185, which were the exact same chip as the X2 4000+,4400+, 4800+ and FX-60. Basically these all had identical cores. They called the X2/FX's Toledo, and the Opterons a denmark. However I have an Opteron 170 and it gets recognized as a toledo. Pretty much the difference in these, is that the Opterons are "rated" for active 24/7 use, while the X2's are not. However this really means absolutely nothing, and the differences are what many consider just a slightly better binning for the Opterons over the X2's.