IMHO, as a veteran of some 25 years now (off and on), I think two things are crucial: focused and disciplined practice, and money matches.
Too many times I see players who practice by shooting shots they are already proficient at, rather than working on their weaknesses. If you want to get better you have to identify the weaker parts of your game and work on them in a sytematic and disciplined way until they are no longer weaknesses.
As for money matches, they are a very different animal than tournaments. The better player may or may not win a tournament match, and the best player may or may not win the tournament. But in a money match, over the long run, the better player will win. In a tournament you may wait 2 or more hours between matches, but in a money match you are always in competition, and this allows you to get in stroke better than playing one match at a time every couple of hours or so in a tournament.
Don't get me wrong, I think tournaments are a legitimate test of pool playing as well, and I think playing in tournaments is also a great learning experience. But I think if you only compete in tournaments to the exclusion of matching up and playing head-to-head it's harder to realize your potential and reach the pinnacle of your game.