For a linux server of course, your big concern is going to be making sure you have compatible driver support. A lot of your mainstream motherboards and chipset drivers are going to support Windows drivers only, or only a very specific set of Linux drivers, but you will probably have better luck with more business-class chipsets and motherboards/server.
I would always recommend a hardware RAID system over software, you're getting more reliability and better performance. However, within the budget you are looking at this might not really be feasible. If you were to get a hardware RAID controller, make sure you get something with onboard cache, and your best bet would be something with dual SAS ports, which would support up to 8 SATA/SAS hard drives. Expect to pay around $400 for this kind of card.
Again, a hardware RAID controller may be difficult for you to fit into your budget though. Getting a system with onboard SATA would work, but I'd be cautious. Some of those onboard RAID controllers can just get overloaded when running a RAID of numerous drives. I had this happen on one of my test servers a while back, where we were running a RAID on eight hard drives. After about a few months, we started having problems where random drives would drop from the array, but the drives themselves were not bad. Eventually, the onboard controller died completely and would not recognize any drives connected to it.