I've seen many theories as to what causes silver or white hair to turn yellow. It may be an age-related pigment change, but it also could be due to any one of various external influences. Because gray and white hair doesn't contain any of the pigment that colors younger hair, it tends to show colors of foreign materials picked up from water (from the shower or swimming pools for example) or even from pollutants in the air. Smoking can cause both the hair and fingernails to yellow. Yellowing can also be due to residues from shampoos or other hair care products.
Unfortunately, there's no way to prevent your hair from yellowing (except by not smoking if you think that is the problem). You might first try a product like "No Deposit Shampoo" from Origins, which will remove smoke and any product build up that might be causing the yellow color. Although I'm not a big fan of artificial colors or dyes, you can also correct the problem by using a shampoo or rinse that will subtly neutralize the off tones and restore a silver, gray or white tone.
Look for a gentle natural blue or violet rinse to use on your hair, which can brighten silver hair and take the brassiness out of colored hair (Aveda makes a product like this). How porous your hair is will determine how the product "takes," and if the ends are more porous you can end up with blue tips. If you choose a blue or violet rinse, follow directions carefully so that you don't end up with a blue cast to your hair, which you probably wouldn't like any better than the yellow one.
I doubt that you need any of the deep-cleansing or other hair treatments promoted for the purpose of removing yellow from silver hair. If you wash your hair daily, you might want to talk to a hair-coloring professional at your local salon about how and how often to use a blue rinse or shampoo for best results.
Andrew Weil, M.D.