Very old question, I know, but it seems that none of the answers here mention TOSLINK, a well-established (standardized in 1983, apparently) system for data transmission using visible-light LEDs and photosensors. Its original specification gave it a limit of 3.1 Mbit/s, but modern implementations manage over 100 Mbit/s.
It uses a red LED emitter into a plastic optical fiber (quite a thick optical fiber too; this was way, way before we had the nice thin single-mode optical fiber that was optimized for data transmission), and some kind of detector on the other end--probably a CdS or CdSe photocell in the earliest incarnations (perhaps explaining the 3.1 Mbps limit?), but a photodiode or phototransistor in anything modern. Because it's a consumer standard (that's what the optical digital audio input on your TV is!), the cables for it are quite cheap, and you can probably get a cable, a transmit LED, and a phototransistor for a receiver for less than $5 total if you're not picky about quality.
(As an aside, just because it's an interesting little factoid, there really was no technical reason for TOSLINK to exist. The same signal it was made for (called S/PDIF, but more often known as just "digital audio") could be and was transmitted over copper wires. As far as I can tell, the only reason it exists is because some engineers thought it would be really cool. And it was!)
Since I noticed after typing the above that the question is asking about line-of-sight communication, which I read as implying they want free-space communication without optical fiber, I'll also mention your standard remote control.
Remote controls as used for televisions and other AV equipment use infrared LEDs and sensors, but there's no reason they can't use visible light. Contrary to what one of the other answers on here says, it's not the intensity that the receiver uses to distinguish the signal from the noise; otherwise an incandescent light bulb would easily drown out the signal. Rather, it uses modulation to distinguish signal from noise; the remote control contains an LED that alternates not between on and off, but between flickering at 38 kHz (most commonly; it may be a different frequency for different devices) and off. The receiver ignores anything that isn't at that specific frequency, and the data to be transmitted is modulated on top of that by switching the flickering on and off--not by changing the frequency, which is fixed. Since it's unlikely that anything else will be emitting at that specific frequency, it can know that the 38 kHz bursts are a signal from a remote control.
This entire system could also be easily implemented with visible light. If you want 10 kbps transmission, you may need to use a higher carrier frequency than 38 kHz, since that's not too much more than the frequency of your signal. But even just a few hundred kHz would be more than enough for reliable data transmission--as long as you don't have PWM-dimmed LED lighting that does its PWM at the same frequency, anyway!