Actually cotton is not good in cold weather to have next to your skin if you sweat because it holds to much moisture. In summer it's best because of the cooling it provides.

I saw a guy on a show last winter talking about layering and the garment he had next to his torso was a new synthetic that was excellent in keeping you warm and dry but is thin.