You cannot simply connect a button to a digital input, because, when the button is not pressed there would be no signal on the input. This is called a floating input. In CMOS logic, a floating input can give undefined results, it may read as either high or low. the pull-up resistor guarantees that it reads high when the button is not pressed. It has nothing to do with de-bouncing.
Bob