For instance, my boot menu has three kernel versions, each with a recovery option. Are these extra options for debugging and troubleshooting?
After a new kernel is installed, there's no guarantee that the new one will work flawlessly due to the heavily fragmented realm of Linux. Therefore the boot menu will offer the possibility to easily boot to the previous kernel. Earlier kernels can easily be deleted or simply removed from the boot menu.
And yes, it's also used for debugging purposes by, say, developers.
Completely removing an old kernel, an example
For the example I'll be using an Ubuntu/Debian machine. Make sure your new kernel works properly and is compatible with your current install before doing this. First we need to list which kernels are installed, so open up a terminal window, and execute:
this should output something similar to the below
Now we've got a list of installed kernels, we can simply remove the kernel by invoking the package management. Say, we want to delete the
You may need to enter your credentials and after that your selected kernel will me removed permanently. If it's still present in the boot list (GRUB), execute the following command in the terminal:
When you update to a new kernel version, the older ones are generally left there in case the new kernel breaks something.
You don't mention your distro, but here's an example way to clear them: http://www.cyberciti.biz/faq/proper-way-to-remove-old-linux-kernels/