This is entirely dependent upon what you are developing for. Take your target system requirements, and double them and use that as your minimum specs for the dev machines. That may seem odd, but it is about the point I've found that I've needed at least of when developing various projects.
The importance of getting good a keyboard and chair is always underrated. If you are going to spend a lot of time at this PC, those are very important.
Monitors tend to be a very personal thing, so definitely attempt to try out any monitor you are considering getting. For programming I think you'd be much happier with a matte finish display; so called 'high contrast' displays often have a gloss coat that causes glare. Dual monitors is highly recommended, the longer you have them the more you'll need them! Keeping them the same can be an improvement, but if you don't have the cash for two high end LCDs, I recommend getting one high end 24" LCD and a cheaper/smaller 20".
RAM is cheap, and you'll likely never have enough. If you are running 32bit Windows, max it out at 4GB of RAM. If you are using another OS that supports more than 4GB of ram (Linux, or 64bit Windows for example), start at 8GB minimum, and if you are working on multimedia projects be ready to upgrade from there.
Best bang for the buck on CPUs seems to be Quad cores right now, so I would say that at least a quad core (2.4Ghz or so) should be the minimum. You may not see much difference going up beyond there, until you get until dual quad core, which is a large price jump.
Find a reliable hard drive or two. Reliability and speed are going to be more important than size. Personally I currently go for a pair of 640GB western digital drives in all machines I build.