This is a long and old thread. Read 1439bhr and audioengr for good answers. I disagree with 1439bhr that fifo buffering is the best solution, though it is a pretty good one.
There are many references on the web about this. Understanding in the audio community has come a long way since the thread started.
It is clear that digital cables make a huge difference on most but not all DACs. Yes, it's because of jitter, not data errors. The cables carry not only the data, but also the clock information. For SPDIF the clock is recovered from dual phase sinewave encoding of the data, and I'm not sure about the Toslink mechanism (square or sine?). This is a terrible way to get the clock.
Imagine, a nice clock signal controls a transport with a FIFO. There is some jitter coming out of the FIFO, but at least the timing is controlled by the master clock right there at the transport. Then the data is encoded, sent to transmitter that changes it to dual-phase sine waves, through a lousy digital cable, into a DAC receiver, where it is put back to digital where the clock and data are recovered. We then send the data and clock straight into a DAC or upsampler.
Now, how good is that clock? An SPDIF receiver uses a phase-lock loop (PLL) to recover the data and timing. It typically has a time constant that passes all jitter below 10 kHz directly onto the DAC. Yup, your music is at the mercy of the transport clock, transport jitter, cable quality, and SPDIF trasmitter/receiver circuitry. It's a wonder we get decent sound at all. Well, in fact, in a lot of cases we don't. The SPDIF standard was made at a time when 2 ns of jitter was considered to be inaudible. This is totally not the case. I have read that "inaudible" is more like 25 ps of jitter.
The problem is that the DAC needs an accurate clock to prevent distortions in the sound. There are 3 solutions that I know about:
1) Use a huge FIFO buffer to buffer up about 1 second of data. You can then reclock with any jitter being around 1Hz or lower in frequency. This can work, but I think there can be jitter problems with FIFOs themselves.
2) Throw away SPDIF since it is junk, and go for a bidirectional communication standard like firewire. This allows the master clock of the system to be in the DAC, not in the transport. The DAC tells the transport to go faster or slower, and only a small FIFO is needed in the DAC.
3) Reclock the data using an upsampler.
Number 3) is most commonly used now, with the proliferation of the 24/192 upsampling DACs and converters. Now, you can do oversampling without reclocking (4x, 8x for instance), but since these new "upsamplers" are not a multiple of 44.1 in their timebase, they are called asynchronous upsamplers. They take samples of the data on their own clock. Yes, this reclocks the data, but unless it is done right, you just resample the jitter into the data stream now instead of the clock.
In order to for an upsampler to reclock without jitter getting into the datastream, the upsampler must "track" the incoming jitter. My Bel Canto DAC2 has an upsampler chip that acts like a digital PLL, which digitally tracks the incoming jitter and acts like a PLL with a base frequency of 3Hz. Audio-band jitter is highly reduced.
You know what? Cables don't make much of a difference on my Bel Canto DAC. But on my Denon AVR-5800 receiver, the differences are so clear. Toslink sound very different from SPDIF as well on the Denon (haven't tested the Bel Canto -- just love the SPDIF on it).
So, I hope this cable debate goes away in a few years, because frankly I think it's nuts that I spend a few hundred on a Harmonic Tech Cyber-link platinum. And I'll be darned if I'll spend thousands on a transport. The clock must be accurate right at the DAC chip, and a good cable is only part of the battle. With newer DACs I hope to be able to happily agree that "digital cables make no difference". Right now though, on most DACs, it just isn't true. Cables make a difference, as do everything else in the digital chain (yup, even power cords ... but I won't go there in this response).