Warm soapy water and a clean sponge....
But seriously, destroy the disk if you want it to actually be completely safe from being recovered. Many datacenters and large firms use physical disk shredders.
For home use a sledgehammer, magnet, and depositing the pieces into random city rubbish bins is something I have adopted in the past. Apparently an angle grinder was sufficient to satisfy the GCHQ when they had The Guardian destroy hard drives recently, and thining about it, and angle grinder is a great idea - and fun too.
In regards to dd, I would run a few of passes, and make one of them if=/dev/random. As stated earlier, altering the bs should help with the speed, but if you though zeroing was slow - wait til you see experience the random write ;)
I place a fairly low trust in scrub and shred. I know shred suffers some issues on journaled and raid configurations, and scrub may have the same problems.
I guess it depends on your threat model, so rewinding a bit - who are you wanting to prevent accessing your data? This greatly informs the conversation. The methods offered above, and in many of the replies thus far, assume a very sophisticated adversary.
Daniel