Hola josi !
A mi tu ejemplo me funciona perfecto
... de hecho la fecha que regresa cuando haces el incremento de 29 días es del 19/11/2008 (correcto) y si la cambias por 31 entonces si regresa el 21/11/2008...
La condición la respeta, probablemente tu error se esté dando en otra parte del código
...
Saluditos