There have been a lot of solid recommendations here. I do something different still.
I use Vinyl Dye for my paint jobs. There are a lot of pro's to this material.
1) Longevity. Vinyl dye is meant to dye car upholstery and other interior bits. I've got a gun that I painted over a year ago, and the only places that are beginning to wear are the corners of some of the protruding parts (places where I'm more likely to hit my gun against a wall, or doorframe or something)
2) Smell. After a lot of paint jobs using traditional spraypaints you have that spray paint smell that seems to last forever. In my experience the smell of vinyl dye fades fairly quickly.
3) Stickyness. Sometimes a paint job using spraypaint will remain just a bit sticky for an extremely long time, especially if you sweat a lot on that exact portion of the gun. I haven't had that happen with Vinyl Dye.
My process generally goes something like this:
Identify portions of the gun you want to keep the same colors. Tape these off using painters tape..
Determine which colors you want to do. Your first coat should be the color you want to be showing the least on the gun (IE Your detail color). Paint the entire gun here, excluding the parts you've taped off obviously.
Let that dry thoroughly. When you're confident it's dry and the entire gun has a solid-looking coat (It may take you 2 or more coats to get everything to set perfectly) tape off the portions of the gun that you want to remain this color. Paint using the next color.
If you are using 3 colors or more for some reason, and are not doing a camo-job like Chap described, you should paint in order of 'common appearance' on the final product, from least to greatest. This will minimize the painters-taping that you have to do, and limit the amount of human-error in that department.
Hope this helps. If you choose vinyl dye you can get it at most auto-parts stores.
This is what the cans look like:
www.jdmgallery.com