Really the bare minimum is any program that can output a transparent png file, with control over the colour in fully transparent pixels (some programs like mspaint don't do transparency at all, others always write black in fully transparent pixels, both prevent making skins correctly) Photoshop & GIMP would be the main ones you hear about. The other part is dxt1/3/5 compressed dds, either you use a program that includes this (Photoshop has a decent plugin, GIMP has a unusably bad one) or use a second program to convert transparent png to dds (I use ATI Compressonator)