RAID does it's stuff by storing your data on different disks and in some cases also storing parity data which will allow it to recreate the data that would be lost when a drive fails.
The difference between hardware RAID and software RAID is centered upon where the calculations related to this parity data occur - if there is a separate dedicated processor, it is hardware RAID and the calculations are handled by the system processor, it is software RAID.
There are some RAID levels, where no parity calculations are required, these are RAID-0, where the data is striped across different drives, primarily for speed, and RAID-1 or mirroring, where the same data is written to two drives. There are also combinations of these two levels known as RAID 10, RAID 1+0 & RAID 0+1.
It was once quite simple to differentiate hardware RAID from software RAID - with hardware RAID, ALL of the RAID complexities were handled by the hardware and the operating system saw only the logical drives whilst with software RAID, the operating system was directly involved and knew every detail - I like to refer to this as "OS driven RAID".
In recent years it has become quite common to find the simpler (non-parity) RAID implementations being handled by the disk controller drivers - in which case, the RAID complexities are again hidden from the operating system, and it is this that creates the confusion surrounding software RAID - the processing is still being done by the system processor, but the OS is not involved. I call this "driver based RAID"
It can be difficult to determine if a RAID implementation is "true hardware" (ie has a dedicated processor) or is "driver based", but if it only supports the non parity levels (0,1, etc.) there's a strong probability that there is no dedicated processor.
You can find out more about the Intel Matrix RAID
here - the ICH7 chipset implementations are two port, and most likely driver based.
Like Mike says, buy a hardware card - 3Ware or LSI Logic.