Great advice! It fixed the issue for me as well. Symptoms and configuration was very similar to the original poster's.
I was getting kernel messages like
ata1: timeout waiting for ADMA IDLE, stat=0x440
ata1: timeout waiting for ADMA LEGACY, stat=0x440
during an fsck, after which the kernel would freeze. I downloaded SeaTools for DOS and burned it to a CD, booted from it, ran the long test, which found 2 errors, repaired them (overwrote them with zeros) when asked if I wanted to, and after a reboot it worked again. The errors were only on one drive from a RAID5 set, so I hope that all data is still there.
The disk is a Seagate Barracuda 7200.8, ST3250823AS. No SMART errors had been reported, and it said "SMART values NOT tripped" or something similar in SeaTools. AMD AthlonX2 3800+, nVidia CK804 chipset, ASUS motherboard here too. Debian unstable, kernel version 2.6.24-1-amd64.