Это потому, что когда вы инициализируете новую дату, она идет с сегодняшней датой, поэтому сегодня 30 октября 2008 г., затем вы устанавливаете месяц на февраль, поэтому 30 февраля не существует, поэтому установите сначала день, а затем месяц, а затем год:
d = new Date();
d.setDate(15);
d.setMonth(1);
d.setFullYear(2009);
Но, как сказал @ Jason W , лучше использовать конструктор Date:
new Date(year, month, date [, hour, minute, second, millisecond ]);