Multi core processing is the logical way forward because the other approaches tried so far have failed. For example higher clock rates don't work any more because the CPUs would overheat and melt. There are ways around this, involving new materials and smaller transistors, but it takes a lot of time and money to make progress in this area.
Larger cache helps up to some point, but it's expensive and doesn't really improve speed that much after a certain size.
Another approach that was tried and didn't do so well was RISC. That was basically an architecture with very simple instructions that can be executed easily and fast. This worked fine for some applications, but doesn't work for PCs because it's not x86 compatible.