Well, in an attempt to try and describe the process (I'm a programmer too so I do things like that

), this is what I do.
Whether I'm working in 8bit or 24 bit, the first thing I do is pick a palette (the actual colours you will use for the picture in indexed 8bit and a kind of colour template for 24 bit; this keeps you from straying from the mood of the picture).
When designing the palette, you pick colour ranges (blending from one colour to another); when working in 8bit however, it is advisable to alter each colour slightly as a 'pure' range can look artificial.
Next, I typically use dpaint for the initial design. This usually involves a rough sketch that I then refine to give me a

black and white drawing. This stage is often crucial (particularly for objects that people are very familiar with such as people and animals; if a face is distorted you will notice that much more quickly than an odd looking rock) and is the most cerebrally intensive part of the process. Altering the basic shape of an image
after you've started shading it is a tricky thing to do so it's best to get it right to start with (I hardly ever do btw).
Once you are happy with the form of the picture, it's time to start shading. First off, do a flood fill or draw with a colour stencil to shade areas of the image in their base colour. I typically do this bit in dpaint but it could be done in photoshop too. This is about the time that I choose which app to shade the image in; If I'm feeling all
old schooly, I'll do it in dpaint but I use photoshop more these days.
When using Photoshop, I'll typically stencil the large blocks of colour so that they don't run into each other and then use the airbrush to fist lay down the basic shade and then gradually refine the image. In photoshop most of the work is done using three tools; The airbrush, selections/stencils and the eraser. Plugins and filters can be used creatively but often create generic looking images (anybody with experience can spot a callously used plugin from a distance of roughly 100 meters).
The basic idea is this; start simple and refine, refine, refine and then leave it when you're happy. Contrary to an earlier post, you can create amazing images in any package that lets you draw something, even ms paint (although that would be slightly masochistic).
Here are a couple of images from a picture I'm currently working on of a Balinese dancer that may illustrate this process a little better; yes, she looks a bit odd at the mo but it isn't finished and besides, Balinese dancers contort their fingers in ways that look very painful and are very hard to draw! The image also lacks a background, that will come later .(you normally work from back to front but in the case of this image, the alpha channel you get with photoshop means I can just plop her on top of any background and it blends in nicely)

Tim