I bought a Dlink DNS-323 and am very happy with it.
I use it to store my ripped DVD collection (no more need to insert the DVD into the DVD player in the living room), Store apps / patches for easy install to either of my two home PC's rather than having lots of DVD's / cd's lying around, storing music, storing pictures.
The DNS-323 comes with some nice applications (bit torrent client, FTP server, uPNP AV server etc) but to big win for me is the fact it runs Linux, is easy to setup so you can telnet to it and it can accept new Linux packages compiled for it and even be used to compile from source. There are a growing number of packages around for it including Transmission (very good Bit torrent client), Clutch (Web page front end for Transmission), uShare (Stream video / audio / pictures to any uPnP AV device like XBox 360 or PS3) and a PHP enabled webserver. I now don't leave my P.C. on overnight as the NAS downloads any torrents and my movie collection is being ripped to avi files so I dont need to keep the DVD's in the living room but can put them in storage. I will probabily get round to archiving my cd's on it at some point too.
The unit accepts 2 HDD's, has gigabit lan and a USB port for a printer although people have been hooking up external drives / flash readers / and even UPS control cables to enable a clean shutdown negotiation between a UPS and the NAS on power failure.
There is also a 4 disk version just released which should be just as hackable - DNS-343.
Modifications available
here.
Of note is ffp 0.5 (Fonz fun plug) which allows telnet / ssh access and access to a number of already compiled other packaged.
I am currently working on compiling uShare for ffp 0.5 and the 1.5 firmware. With XBox 360 streaming support is done but PS3 DLNA support is a bit more tricky...... FFMpeg is a git to get to compile.......
RB