Follow these (general) rules. If your skin is...
Avoid deep browns (and certainly black); pale skin is prone to ruddiness and dark hair will create a bull's-eye around red areas.
Try a light auburn or rich honey blonde. Don't start overhighlighting, though; hair that's too blonde will wash you out.
Avoid red or copper hues, which can make your skin look sallow or orange.
Try a deep mahogany base that will warm up your skin tone; protect the color with a UV-shielding styling product (like Kérastase Crème UV Défense Active). Consider a few golden highlights for extra brightness.
Avoid going more than a couple of shades lighter than your natural color; the results could look brassy and make your skin tone seem flat.
Try weaving caramel or cinnamon highlights around your face and through the ends, where the sun would hit.
A Note on Gray
White hair, as long as it's shiny, will look stunning with any skin tone. Use a violet-tinged shampoo once a week (try Pantene Silver Expressions), avoid styling products with alcohol (they can dull silver), and smooth a silicone serum (like Paul Mitchell Smoothing Gloss Drops) over dry hair for extra sheen.