Hardware vs. Software debounce

I've been finding lately that with most little projects it is easier for me to just stick a cap across my buttons than it is to put in debouncing code.

Is there any advantage or disadvantage to doing so that I might not be seeing? Is there a cap value that is preferred for this? Seems like I have used everything from 1 to 100nF and been just fine.

Discusses Hardware debouncing.