A kernel image package is related to the kernel image and modules which are loaded when your OS is booted. A header package provide files that are necessary to build out-of-tree kernel modules and/ or some other programs from source.
Usually you install the
linux-image-generic package. That is a meta-package that does not ship any files itself. Instead, it depends on the latest kernel version provided by Ubuntu, for example
linux-image-3.8.0-19-generic. This package is needed to receive kernel updates.
A similar story holds for the
linux-headers-generic package. You need to install this package if you use external kernel modules such as proprietary video drivers. The
linux-generic package is a meta-package that ensures that both the
linux-image-generic packages are installed.
This is a variant of the
-generic packages. See What's the meaning of "-pae" at the end of kernel version?
This package was introduced with Ubuntu 12.10 and provides additional kernel modules (drivers). See What is the linux-image-extra package for and do I need it?.
Why multiple linux packages with the different version numbers?
The kernel is a critical piece of your system. Newer kernel versions may introduce a bug that make you unable to start your system successfully. With multiple kernels installed simultaneously, you can change the kernel version in the boot menu.