First, let me explain why metals generally conduct heat better than other solids do. In metals, some of the electrons (often one per atom) are not stuck to individual atoms but flow freely among the atoms. Of course, that's why metals are such good conductors of electricity. Now if one end of a bar is hot, and the other is cold, the electrons on the hot end have a little more thermal energy- random jiggling- than the ones on the cold end. So as the electrons wander around, they carry energy from the hot end to the cold end, which is another way of saying they conduct heat.
Of course, how fast they conduct heat depends a lot on things like how many free electrons are around, on how fast they move, and especially on how far they usually go before they bump into something and change direction. Those are the same factors that determine how well the metal conducts electricity. So there's a rule that works very well, saying that the thermal conductivity of a metal (at some temperature) is proportional to the electrical conductivity. That's convenient because it's much easier to measure electrical conductivity than thermal conductivity.
So now I'll get a little closer to answering your question. The biggest factor giving different conductivities for ordinary metals is the difference in how far the electrons go before they hit something. It turns out, for amazing reasons connected with the wave nature of electrons, that they can flow right through a perfect crystal without bouncing, the same way light travels through a clear crystal. Lots of metals (stainless steel, brass, etc) are alloys of several elements, and the electrons bounce off all the irregularities in the arrangement of the different atoms. So those aren't good conductors. Even in a pure metal, the electrons still bounce some, because the thermal jiggling of the atoms keeps them from ever forming a perfectly exact crystal arrangement.
(republished on 07/27/06)