Another great package that I was first introduced to in my Statistical Computing class, RColorBrewer.
This is a package that has built-in palettes that allows you to choose colors that have enough contrast for making plots.
The palettes come in three basic types: sequential, diverging, and qualitative. The sequential and diverging are great for plots where you want the colors to show an order. The difference between sequential and diverging seems to be a little subtle in terms of need: sequential shows more of a gradient, while diverging emphasizes both high and low extremes.
The qualitative palettes are best for categorical data with no ordering among categories. There are many sets, but they differ in the number of maximum colors, from 8 to 12. One interesting palette is the Paired palette, which consists of 6 hues, each with a light and dark color. I used this recently in a plot of different species, with males and females of varying lightness.
The same effect can be produced, perhaps to better effect, with different plotting symbols, but the Paired palette does a pretty good job.