I want to be able to digitally switch the input of a line-level preamplifier. I was considering using relays to physically connect or disconnect each source to the input of the amp, which would be perfect in terms of fidelity. But is that sort of overkill? Would CMOS transmission gates be good enough? Am I overlooking something far simpler and more obvious? Thanks.
Relays have the best specs: (almost) zero resistance when on, infinite resistance when off. Use reed-relays, not power relays.
They're better suited for the low current, and often have a lifetime as high as 100 \$\times\$ 10\$^6\$ operations, which is forever. Reed relays won't give you an audible click either. If you use SPDT or DPDT relays you can switch between signal and ground, so that the input doesn't pick up noise when off.
If you want to go electronic there's the 74HC4066, like Pentium100 suggests, but you'll easily find switches with better specs. Analog Devices has a wide offering, the dual SPDT ADG1636 has very good figures: 1\$\Omega\$ on resistance, and 0.007% THD+N.
The electronic switches can be controlled by a logic voltage and hardly need power (the ADG1636 consumes less than 1\$\mu\$A).
Relays are the best, but you can use switching chips like CD4066, but they introduce a bit of distortion, though it is not a lot and different chips distort the signal a different amount. Still, the 4066 was used in high quality devices, like the Marantz PMD-430 portable cassette deck, probably the best portable there is.