"The program is written in VB6, does a lot of data/number crunching, and only uses one core" Oldschool style! There's a few things you'd want to take into account here. Firstly, that most of the modern extensions won't do you much good, so you're looking for sheer single threaded speed.
"So the two things I've found so far that help speed are more cores, and the speed (Ghz) of the processors" GHZ, sadly enough is not a great indicator of speed these days. Architectures used by modern systems diverge wildly and you might end up buying a system that performs less well based off speed. While I realise there may be good reasons for not rewriting the program, using a modern language, modern processor features, and programming the application to take advantage of parallel processing (or maybe even a GPGPU) would massively increase the speed you're running things at.
I'd probably look for a benchmark that does single threaded performance against cost - passmark has one and it should help you make an informed decision. I used a google search to find it - I used the term 'single thread performance;. I note that the best processors for the price all seem to be intel. Don't forget to test the application with and without hyperthreading turned on, since many applications don't do that well with HT.
Another approach I'd consider is an array of smaller, cheaper computers which might cost less than a more expensive system, since this task seems to be 'trivially parallelisable'. You might even want to try using amazon EC2 to offload and do the calculations, then re-combine it at your own desktop. Depending on the running time of each program instance, you might even be able to do this with the free tier.
For a more scientific view of what is actually bottlenecking your program, take a look at xperf. I'm unfamiliar with it, so I can't help much there, but there's plenty of good information out there, and should help you work where exactly you need to put more resources into.