Hardware
Hardware support is still a problem for Linux. If you buy a 50 Dollar/Euro scanner in the superstore, there are always Windows drivers included but none for Linux. Some hardware companies do not seem to have recognized Linux and therefore are not supporting it. But these are becoming less prevalent, especially after the Linux hype in 1998/1999.
There are two possibilities for how drivers can be developed: by the hardware company itself or by the Linux community. If someone in the community wants to do so, he needs the specification of the hardware. So the companies have to publish it somehow. But some companies apparently do not like that. Nvidia avoided it as they released a binary driver for Linux that is quite fast and supports a lot of the graphic features.
Nevertheless a lot of hardware is supported. Here is a list with some information about it.
Checking...
the hardware support is generally the first stumbling block you runs into when installing Linux. In order to overcome this, you can follow the links below. If your hardware is very new, this information may be outdated but you can expect support for hardware if older hardware from the same company has been supported.
Graphic Cards
The base Linux supports, as far as I know, all brands of graphic cards. If you want to run a desktop environment like GNOME or KDE, you need hardware that is supported by XFree86. If you want to run OpenGL-programs, you need DRI-support. Check these links and read the documentation.
Sound Cards
The ALSA is integrated in the Linux kernel and supports a lot of soundcards that are integrated on the motherboard or connected with the PCI or the USB. Usually, one does not have to care about them since the driver modules are automatically loaded.
Printers
Some years ago there were a lot of so called GDI-printers, bare of any intelligence. But this has changed and some companies (HP & Lexmark) provide drivers.
etc
Most other kinds of hardware, such as CD- & DVD-devices, mouses, keyboards, harddisks, modems, ISDN- & and network-cards, monitors, CPU and motherboards are well supported.