I believe a heavy ball is one that has speed and spin.
You can hit a fast ball with little spin and it's easy to get back and control. If you're faced with a ball with spin and pace when it hits your racket it's much more difficult to control due to the spin, hence it feels heavy.
I remember an interview with Tim Henman after he played Pete Sampras - he said that many guys would serve faster than Pete but none of them served as heavy. Now, Tim wasn't the best returner of the game for sure but I think he was describing the fact that Pete put a lot more rpms on the ball than anyone else.
You can hit with too much spin and the ball will just sit up, the key is to get the right combination so that you can still hit fast and through the court.
I would say practice generating racket head speed, hit through the ball with enough low to high for spin. Hitting out in front too is a must.