Yesterday I had to debounce a button on my STM32VL-Discovery. I did a quick search and found an amazing article on Hack A Day:
Debounce Code – one post to rule them all
This is a great collection of many approaches to button debounce. I didn't use any however (although I liked the integration technique very much) - I had just one button that may not even be pressed at all - so I didn't want to poll it or anything. Rather I went for external interrupt to detect the press itself.