Maybe I better explain how icons work in order to give you the best advice. Lets use the standard windows folder icon as an example. This icon is a package of several icons images, each vary in size and bit depth. Now these sizes range from 48X48 to as small as 16X16 pixels and contain in upwards of 16 million plus colors to as little as 16 colors, with XP that even includes versions that possess alpha-blending.
You could technically create your own in even the simplist program such as windows paint, save it as a bmp file, then relabel the file extension with the ".ico" and that would be an icon. But it would be only one size, with one bit depth, such an icon can only be used in one way. That is you have to assign the icon to the correct shortcut. Windows will then use it for that shortcut and that one alone.
Thats where icon software comes in, they allow you to create icon packages(perhaps package is not a good word, because your not creating a whole slew of icons, just variations of the same one) that windows can use in all sizes and bit depths, so that they can be assigned on a whole system scale.
Now programs like Axialis IconWorkshop or the grand-daddy of all Microangelo are designed with icon artists in mind. They provide and editor, palettes, and packagers. Axialis even goes so far as being able to rip icons from programs and replace them with your own!
Most serious icon artists usually use software like Photoshop to create an image then export it to an icon editor and finish it off there. This provides the best possible image.
I hope this helps.