There is a lot involved with that question. Generally, if you are doing a mild color change (or simple repaint) on top of a paint of known quality, no you don't have to prime. Priming might be needed for:
Extensive drywall repairs
Topcoating "Builder paint"
Light->Dark color change, especially deep green and red. (Use a grey-tinted primer for these)
Oil paint (use a bonding primer)
Surfaces with past adhesion issues
Difficult environments, such as kitchens and bathrooms
SirWired