Its about the software, and the problems that the software is solving. The software has to support multiple threads, but even then you may not get the results you are expecting. Some problems scale very well and doubling the number of cores will half the execution time. Other problems do not scale so well and you will get diminishing returns. Some problems are inherintly single-threaded and cannot be sped up by adding more threads/cores.
Parellization is a problem if not everyone has multi-core processors. For example, when parallelizing a problem you may divide a single problem among four threads. It is entirley possible that after doing this your program will only run twice as fast (because you had to redesign the algorithm to make it parallelizable) on a processor with four cores, which is great, except what if someone with only one processor tries to run the code? It would run twice as slow!
Lots of people are into photo editing and video encoding. Most of those applications will see a huge speedup. It would be reasonable to assume that in about a year many more games will be taking advantage of multiple cores.