A good read:

http://www.ganssle.com/debouncing.pdf

Robert