There is no "best" time to upgrade.
For the past 20 years, CPU speeds have doubled over the previous highest speed every 18 months. That means that at one point, "x"mhz was the fastest. 18 months later, "2x"mhz was the fastest. Still 18 months later "4x"mhz, and then "8x", and then "16x", and so on and so on.
Video cards have also been doing something similar. Though there is no direct relationship (because video cards aren't measured the same way), but they have still been increasing in power exponentially over their predecessors.
There will never, ever be an absolute "best" time to upgrade. It has been my experience that the "best" time to upgrade is when a brand new technology has been released. This usually drops the price of the older technology. So, you can get the previously fastest hardware at a fair deal less than it was. The new fastest hardware will be priced what the old fastest hardware was priced at. Everything gets bumped down a spot.
This is what I do. I always buy the previously "best" stuff just after the new hardware is reduced. I mean, my radeon 9700 pro AIW is coming on Monday. It's cheaper this way, and keeps your computer just as up to date as the next computer geek, and saves you a fair penny in the process.
XP 2500+ Barton @ 2256Mhz
A7N8X Dlx
2x512MB Corsair PC3200
MSI GF3Ti 500 @ 265/570
16x DVD-ROM
2x80GB 7200RPM Maxtor
Onboard audio
3DMark 2001 SE - 10528