I've just run out of disk space on /. Looking into the situation I realised that since first installing 12.04, Ubuntu has upgraded the kernel ~23 times and has kept every old kernel, binaries and header sources.
I've just manually apt-get purge
-ed all but the last couple, saving ~4Gb space (on a 20Gb partition, so that's v. significant). Why would Ubuntu want to keep all of those? Is it lack of a feature such as "keep last 4" or is there some other reason?