The problem is that the software itself isn't taking advantage of the resources, not that the resources aren't helping the software. And multiple cores, HT, and all that other stuff is still incredibly useful for people who do a lot of multitasking. Modern OSes are quite good at balancing threads across different cores.
I do beleive paralellism is the future. However, it is not easy to implement. I think we -currently- are in a transition period where more and more programmer learn ot use multithreading more efficiently and where the tools we use are starting to give us easy ways of using paralele architectures.
If you just look at Microsoft's .NET, the 4.0 version of the framework is in the making and they are adding alot of stuff like "Parallel.for" and "Parallel.foreach" which basically threads every iteration of the for-loop and for-each-loop. Thus making it easy for .net programmers to quickly throw in some parallelism here and there.
My guess is, within 5 to 10 years, all software will be made with paralellism in mind.