Linux has support for three different kinds of RAID: true hardware RAID, software RAID, and fakeraid. It also supports RAID across IDE / PATA, SATA, SCSI and probably any other sort of block device you can present as a SCSI device (such as USB memory sticks)
This is true RAID, performed in a dedicated chip on the RAID controller. I believe any SCSI RAID controller you come across will be true hardware RAID. The only true hardware IDE / PATA raid controllers available are made by 3ware, who also make SATA RAID controllers. Adaptec, Areca, LSI and Intel also produce true hardware RAID controllers, although LSI and Adaptec also have a range of FakeRAID controllers, so be careful
This normally performs the best out of all the options, however this depends entirely upon the controller and disks. The Adaptec SATA controllers, for example, perform worse than the 3ware controllers, which in turn perform worse than the Areca controllers. They are priced in the same order as well. You get what you pay for.
Generally if the controller has more than 4 ports and supports RAID5, it's going to be a hardware controller.
It is a good idea to ensure the Hardware RAID is a SupportedRaidController (unless planning on hacking it into going).
Software RAID is performed in the kernel. Linux 2.6.11 has support for RAID levels 0, 1, 1+0, 4, 5 and 6. You can probably do RAID 0+1 and RAID 1+0 using the individual RAID 0 and RAID 1 modules, but there is specific support for 1+0. See SoftwareRaid and RaidNotes for some more infomation about this under linux
There is some debate over software RAID's performance and reliability, but I've not seen anything other than anecdotal evidence to confirm this. SoftwareRaidVsHardwareRaid has some more notes on the relative benefits of the two.
You can apply Software RAID to any block devices, regardless of their physical nature, so you only need to get simple controllers for whichever sort of devices you want. I've heard people joking about building a RAID5 volume of usb memory sticks or floppy disks, and I know of at least one turnkey NAS system that offers RAID-1 across external USB disks - this will almost certainly be running linux and doing software RAID across the volumes.
This is a term applied to the class of RAID card that actually does its RAID processing in a kernel module. It is therefore software RAID, but it gets presented as a 'hardware' RAID controller. These are normally a lot cheaper than true hardware RAID controllers, and often will only manage RAID levels 0 and 1. I've not seen any SCSI fakeraid controllers.
Most 2 and 4 port IDE / PATA and SATA controllers are actually FakeRAID. Check out http://linuxmafia.com/faq/Hardware/sata.html for more information on a specific controller.
Hardware RAID is the most reliable. It presents the entire RAID volume as a single volume to the host, and abstracts away the physical devices from the host itself. One benefit of this is that the host system doesn't need to be hotplug capable for the disk drives - the only requirement is that the controller is capable and the drives are in a caddy or other similar arrangement which makes them electrically capable. The 3ware IDE / PATA controllers are hotplug capable, for example, if you have proper IDE hotplug caddies.
One cavaet for large RAID volumes is that the traditional DOS FAT doesn't handle partitions greater than 2 TB. AddToMe link to notes on this
lib/main.php:944: Notice: PageInfo: Cannot find action page