If you want to literally fill the hard drive, do this:
dd if=/dev/zero of=zeros bs=1M
You can optionally specify count if you want to limit the size, but if you omit the count, it will just run until you're out of disk space.
dd if=/dev/zero of=zeros bs=1M count=10240
As psmears mentioned, you'll get better performance if you set the block size to 1 MB (bs=1M) instead of 1 B (bs=1). This will still take a while, but if you want to check on the progress of your command, open a separate console and run these commands:
ps aux | grep dd
Use the PID of dd in this command (replace PID with dd's PID):
kill -USR1 PID
Then go look at your dd terminal. Of course, this is of limited use when you're just trying to fill up the drive (you could just use df or du to check free disk space or file size, respectively). However, there are other times when it's handy to make dd output its progress.
Extra credit: one practical use for zeroing the free space is that, afterward, you can then delete the "zero" files and dd the entire partition (or disk, if you've zeroed all the partitions) to a disk image file (say, disk-backup.dd), then compress the file. The free space is now highly compressible, so your compressed dd image will be a lot smaller than the original block device whose contents it contains.
Shenanigans: zip up a large zeros file and e-mail it to all your friends. Tell them it's something really cool.