Glass is almost always the better upgrade. The only exception is if you have a truly "old body". The 20D is about at the limit of what I would consider an old body, so this is a bit of a tough one for me.
At this point I would start buying glass you can use on both a FF body as well as a crop body. Also, I would not buy another crop body for your next one.
Get a used 5D II or even 5D over another crop body. As much as I love my 7D (and I really do), I wish that I had a FF body.
The best of both worlds though would be to keep my 7D when I upgrade (which I will be doing), that way I still have the extra reach from the 1.6 crop factor+have a 2nd body to reduce lens changes.
The problem is that this would require you get more glass, and it sounds like you couldnt afford this.
So all this still doesnt really answer the question.....
Heres what I would do.
If you cant afford a used FF body as well as some non EF-S glass, then just get a few primes and use them on your 20D.
The reasons for this is are:
#1 You have none
#2 They kick ass.
#3 They are cheap
#4 You can use them on a FF body when you upgrade
#5 They are very sharp usually
#6 They are fast (large aperture)
#7 They will help you learn.
Heres a few I would recommend:
Normal EF 50mm f/1.4 USM Autofocus Lens - $380
85mm f/1.8 EF USM Autofocus Lens - $400
and if you want to shoot wider
Wide Angle EF 28mm f/1.8 USM Autofocus Lens - $510
or
Super Wide Angle EF 20mm f/2.8 USM Autofocus Lens - $500
Also, if you are sure you won't be buying a FF body and just want a sharp zoom, this one is pretty nice (I own it btw).
Its image quality is close to or equal to most L glass, but its build quality is not very impressive.
EF-S 17-55mm f/2.8 IS USM Zoom Lens - $1,120
The 17-85 is a good lens as well, and I used to own it before I gave it to my brother in law along with my 30D.
Here are some shots I took with the 17-85mm+30D years ago so you can get an idea what to expect. Its not L glass, but the image quality is quite descent for the price
1)
2)
3)
Hope this helps.
Neil