I had a situation where I found that /boot had filled up. So I cleared up some space, then reinstalled the most recent kernel images in case the kernels were corrupt. I used:
apt-get install --reinstall linux-2.6.32-33-server
(as one example). Now these reinstalled kernels will bomb out during reboot with a message Unable to locate init.
(or similar).
I could fix this the hard way - by pulling apart the images and finding out why it doesn't work. The root volume is an LVM logical volume formatted with ext4, and the boot GRUB entries match other working entries.
However, I'm sure there's a reason that the package doesn't seem to get it right. I'd like to figure out if I'm doing something wrong with the packages, or if it is something else.
Why won't these reinstalled kernels (installed with APT) boot successfully?
If the message is unable to find init, and assuming you have other kernels which are working well then the init in question is likely to be the one in the initramfs for the kernel. I would compare the sizes of the initramfs files for each kernel in /boot. You may be able to recover the situation by running
update-initramfs -e -k <version>
(remember to use the version you are trying to fix).