I'm a big fan of either building a linux-based server, or using a QNAP. QNAP is a bit pricey per disk and per GB, but it just works.
For large disk requirements, I use a linux server with Areca 12-port RAID as secondary storage, and external eSATA+expander trays for tertiary storage (probably could put 50-100 drives on this with no problems). Overkill for most home use, though.
It's 2010, and I'd use iSCSI, not SMB, unless I wanted direct-attach FW800.