I have the NXT 2.0 set, and have owned it for about 5 years now. About a week ago, the sound coming from the speaker started sounding distorted, and eventually stopped working. That time I restored the sound by simply restarting the NXT, but now no sound plays, including the click and startup sounds.
I have had the sound go out on one or two NXTs. I was able to restore it by doing a factory reset.
On the back of the NXT, there are 12 technic pin holes. In the one closest to USB port, you will see a metallic button. With everything unplugged from the NXT and with the NXT powered on, press the button with a paper clip or other instrument that will fit in the hole. After a few seconds, the screen will go blank and the brick should start making a ticking noise. Then use the NXT-G software to reload the firmware on the NXT.
For more complete instructions with pictures, see http://www.neisd.net/et/robotics/documents/ResettingYourNXTBrick.pdf. Note: Step 2 is incorrect and should be skipped - there is no "soft" reset - the button in the battery compartment is for indicating that the rechargeable batter is being used.
UPDATE: Link above is broken, so here is a new one: http://www.legoengineering.com/clicking-brick-syndrome/. It is not quite as detailed, but still has nice pictures.