Really it's the memory that makes the most difference. YOu don't compile the whole time you're coding, but having several apps open plus several projects and class files open all at once eats through memory like you wouldn't believe. I have a Pentium M 1.7Ghz with 1.5GB of memory and it's perfect for what I do. Next to memory, hard drive speed is next in importance. Unfortunately my HP/Compaq NC8000 only comes with a 5400 RPM HD, which isn't my first choice. I'd rather have a 7200 RPM drive. After the harddrive, I consider the LCD to be next in importance. My 1400x1050 isn't as good as my previous Dell C840's 1600x1200, but the quality is much better. I can stare for hours on end easier with my HP than I could with the Dell. Finally I would consider processor speed to be next in importance. You do need a speedy processor to help make those compile times shorter, but like I said, I don't sit around and compile code all day long, most of it is in "word processor" mode editing source files.
Of course this is all my opinion. But as a Java developer using IBM's Websphere Studio Application Developer plus having Apache, Websphere Application Server 5, several IE and Firefox windows, Outlook, and Musicmatch all open at the same time, my priorites may start to make sense. Your mileage may vary depending on the development you do.
As far as specific brands, I've only had experience with a couple Dell Latitudes and an HP/Compaq NC8000. My HP beats the Dells hands down in everything that I consider important. Quality and workmanship, speed, LCD, everything is better. While I have no experience with the Thinkpads, I'd be willing to bet that my HP's quality is up there next to IBM's.