I'm stuck in the low 20s, so I'll let you know what I've gone through.
I have been a theorist, which is plainly visible from my ZBLL document. I learned full PLL before completing 4LLL. I decided to go the path of ZB, and learned COLL (slowly) and VHF2L (even more slowly). At about 35 seconds I had finished 3LLL. At about 30 seconds I got my first can of Jig-a-Loo. This dropped my times 2 seconds instantly. I became more and more serious about getting faster, and learned full OLL in a week. However, sticking to my ZB goal, I started working on that document. Devoting cubing time and thought to learning algorithms rather than practicing, my times have not improved significantly in the past 6 months. I now average 23-24 seconds and have complete VHF2L mastered, as well as 32 tricky cases. I have know COLL for a long time. I recently learned how to X-Cross, but the time difference is, truly, negligible. So here are the stats I expect when I cross the 20 second line:
Full Fridrich done. This is not necessary for insanely fast people but as you cross it really helps.
Full VH done. This is basically just tricks to make the solve easier.
X-Crossing mastered. But remember it is not a good option on many solves.
Color neutrality. I'm convinced I'm faster because I can use the best of the 6 cross situations. However, I have to decide quickly whether an X-Cross is viable.
So basically you just have to stick with your method, learn a trick or two here and there, and get a lubricant. If your cubing career has been dominated by the need for speed, this should come easily. For those of us fascinated by cube theory, it becomes more difficult.