In particular, I've had white blocks that have yellowed in places. Can the colour consistency be restored? Or at least improved?
I'd be more interested in people's actual experiences rather than simple suggestions.
When I first got my kids some Lego I did it by bulk buying 25 kilo bags of used bricks off the Internet. Now these bricks had obviously been in outdoor sandpits, chewed by dogs, hidden under carpets - you name it.
We successfully restored almost all of them by by washing them in a bath full of a Milton solution, scrubbing each one with an old toothbrush and then leaving them to dry on a towel.
This cleared up some yellowing that we had thought was sun damage and fading, however there were some (especially some black pieces) that just looked off-grey and no scrubbing sorted them.
I would suggest trying this method, but if it is sun damage that is more than the outer surface I think you might not have any success.
I have used the Retr0bright method with great success for restoring yellowed bricks. Originally, this solution was hit upon by fans of retro computers wanting to restore old yellowed computer and game consoles to their original color. LEGO fans picked up on it and have had good results.
The solution is essentially hydrogen peroxide with sodium percarbonate added as a catalyst. The bricks are submerged in the solution and placed in UV light (sunlight or under a UV lamp). Depending on the strength of the solution and the light, the process can take several hours to a couple days.
Hydrogen peroxide is readily available, although in the US it is usually sold in a fairly weak 3% solution. Sodium percarbonate is the active ingredient in various "Oxy" detergent boosters.
The Retrobright site has a complete discussion of the chemical reaction that takes place which restores the original bright color. The site owners do not recommend bleach for this purpose. Although a prolonged soaking in bleach solution can remove much of the yellowing, it will also leave pits on the surface of the plastic, causing it to become brittle.