Kernel 2.6.21 was used I think on Ubuntu Feisty (7.04).
From your comment you said that you are using Ubuntu Jaunty - this is strange since the kernel for Jaunty was 2.6.28.
Both Feisty and Jaunty are no longer supported and you will not be able to install any packages such as the headers via the "sudo apt-get" method.
You are strongly recommended to replace your installation with at a minimum version 10.04.
Both Jaunty & Feisty are no longer in the official ubuntu archive.
However all the original package information for all Ubuntu releases can be found here.
To track down the original .deb packages to install takes a bit of detective work.
I'll start for an example to search for the 2.6.28 Jaunty linux headers.
Linux Headers exist in the main repository. So first download the Sources for the main repository
You'll need to extract the Sources file.
Have a look at the file in your favourite editor.
You are looking for the linux-headers Binary - see this screen-shot
You'll see that I've underlined the linux-headers - you'll see the package name and the location where you need to find that package
Next point your browser to the start of the folder where to find the package
http://archive.ubuntu.com/ubuntu/
Navigate to that package name - in this case
pool/main/l/linux
In that folder you'll notice all the original deb files for every release. So for Jaunty you would look for files beginning linux-headers-2.6.28.
Now you'll see all related files - load the deb files according to your architecture (64bit ends with amd64.deb, 32bit ends with i386.deb) together with the header files ending "all.deb"
For the Feisty packages, do similar to the above - but this time start with the Sources file for the Feisty distribution.