i'd use "dd if=/dev/urandom of=/dev/sda" Urandom is slower but better..
If you have access to dd, you probably have access to shred. It makes several passes using different patterns (25 by default), and has the option of zeroing the drive on the last pass. I believe it meets DOD standards. I'm not sure how effective it is with slack space, which often holds recoverable data even after running utilities that are supposed to wipe data off drives, but dd wouldn't be any better.
Shred works on a filesystem level to delete individual files on the drive. Worse than that, it only works on a subset of filesystems (primarily Linux and Unix based).
You want something that wipes *everything* from the drive, no matter what the filesystem is. dd, or dcfldd (which is what I prefer to use) does a sector by sector copy of data from a source to a destination. So the following command:
dd if=/dev/urandom of=/dev/sda
Will effectively fill the hard drive with random data making and data recovery impossible.