Topping the ball is often due to a reverse pivot. A "reverse pivot" is when you lean toward the target at the top of your backswing and lean away from the target at the finish.
I suspect you finish your swing on your back foot (right foot for right hander) instead of following through to your front foot. You want your weight over your back foot at the top of your swing and over your front foot at the finish. When you finish your swing you should be able to lift your back (right) foot and remain balanced.
I try to put my left shoulder over my right knee at the top of my swing. This ensures I get my weight back and also gives me a lot of torque (and more power). After impact, I let my right shoulder push my chin forward as I follow through.
This works well for me, but your mileage may vary.
Lessons, lessons, lessons. The best money you'll ever spend. Find a PGA pro and not just "a guy who knows stuff". Focus on what your pro tells you. Don't listen to friends or playing partners (or fluther posters).