If you are trying to print something like a Rubic's Cube in the correct colors without using paint or stickers, there are only a couple of options.
Assuming that you are using a printer with only a single extruder and no fancy gadgets, you will need to print each color cube you will need to print in a lot of pieces and then put them together. You can't use tricks like changing the filament manually at a certain level for most of the cubes because most of the cubes are corner cubes with 3 colors.
Assuming that you have some sort of multi-material system, then you just use STL files that are made with the proper colors. And I'm talking any sort of multi-material system, including multiple extruders, the fancy extruder described by @Martin Carney, or the MMS from prusia3d.com which has 4 inputs to a single extruder with the disadvantage of no mixing and having to automatically waste filament when changing colors.
There is another system used by the da Vinchi Full Color 3d Printer which sprays ink onto the filament as its printing.
Since the standard STL file doesn't have color definitions, the normal thing to do is to break up the original file into several STL files each with their own color. This requires Meshmixer or a 3d modeling program.
I've done a lot of research on this, but haven't had a chance to try yet because my Original Prusia 3d and its Multi-Material kit haven't arrived yet. :(