The mechanism behind hair color isn't a dominant or recessive allele -- if that were the case, there would be only a small sampling of hair colors, not the millions of possibilities we see. Instead, hair color is based on the number of eumelanin or phaeomelanin genes that are turned on -- it's a cumulative effect rather than all-or-nothing.
If all a person's eumelanin genes are turned on, he or she will produce a lot of eumelanin and have black hair. If all of a person's phaeomelanin genes are turned on, he or she will produce a lot of phaeomelanin and have red hair. Conversely, if a small percentage of a person's eumelanin and phaeomelanin genes are turned on and most are turned off, he or she will produce only a little pigmentation and have blonde hair (or, if there's some phaeomelanin thrown in, strawberry blonde hair).
Most of the genes that correspond to eumelanin and phaeomelanin are thought to be found on the 15th and 19th chromosomes -- close to the genes for eye color. (That's why blue-eyed, blond-haired people and brown-eyed, brown-haired people are much more common than blonde-haired, brown-eyed people.)
But not a tremendous amount is known about the genetics of hair color besides the basics. In fact, the knowledge gap isn't peculiar to hair color: the entire field of genetics is changing right now. As reported in the "Science Times" section of the New York Times in early November 2008, the system is much more complex than previously thought: RNA, for example, plays roles beyond what scientists ever imagined, and people inherit not only genomes, but also accompanying molecules, which might be just as potent.