I've used software RAID in several setups, no more than 10, and I've only been bitten once. It was a RAID5 system and I had 2 disks fail on me. The failures were weeks apart, so shame on me for not taking care of the first failure more quickly. I've used many more hardware RAID solutions, and I've only had problems with 3ware cards.
Recently, my home system suffered a disk failure. Luckily, I'm more concerned about stability than performance on this system, and my RAID1 saved my bacon. Recovering was easy:
1. Power down and install new disk
2. Build the new disk's partition table
sfdisk -d /dev/sda | sfdisk /dev/sdb
3. Add new disk to RAID array
mdadm /dev/md0 -a /dev/sdb
Where was the pain, complexity, and hassle? I dunno...I guess the implementers of the Linux software RAID code took care of all that for me...much thanks and kudos to them.