This is the eternal question, but there is only one simple answer: It is always the wrong time. Whenever you buy anything remotely technical (computers, cars, ...) you will always have the "new model" available relatively shortly after your purchase, or the prices just drop.
However there is some "soft" advice:
- Do not buy the latest and greatest products, because they usually have a "bleeding-edge premium" price
- Buy a "current generation" product. This will give you at least a little more time, before you get completely out of date again.
The most important point IMHO howver is:
- Get a clear idea of what you really need !
Avoid kitchen-sink products which try to be everything to everybody. Usually they make too many compromises. For a developer machine you will hardly need Blu-Ray drive, maximum 3D game performance and water cooling. Instead, strive for a fast hard drive with low latencies, high screen resolution and lots of memory. CPU power is not as important, because most of the time you will be typing text and for compilation it does not really matter if you have 2.8 or 3.0GHz clock speed.