Windows Vista is supposed to be written to take better advantage of dual core CPUs than XP
As for programs, many are available now that run on XP which can use dual core processors, it's a case of when the programmers get round to it and if the application will benefit from multiple threads
I would say get whatever CPU seems to be the vest value for money at the time, and remember that running 2+ applications at once will benefit from dual-core too