This topic has been discussed many times in different contexts, and this is the way I understand it, in simple terms.
The unwinding of a coiled body aided by the leg push off creates a lag in the arm and hand, loading the shoulder and arm muscles. The contraction of the stretched muscles, aided by the pull from the rotating body, accelerates the arm in the forward swing. My claim is that at this point, the body has transferred whatever energy it will to the hand/racquet system, and its only remaining function is to serve as a solid anchor from which the arm and hand can do their job to add more energy to the racquet. This is where the positioning of the arm becomes important - the hand body connection must be solid. If your arm is flailing wildly at this point, it will not have enough support from the body, and your shot will not feel solid. All the advice about how to position the hand/wrist correctly comes in at this point. Upper arm rotation and biceps contraction provide the main additional racquet head speed at this point, with ulnar to radial movement of wrist adding to spin and control (and some power, of course).
Actual forward movement of the body at contact time, in terms of MPH, is probably not contributing anything significant, and as long as it provides a solid base for the arm, it can be moving in any direction appropriate for the shot. In some very short strokes such as volleys and certain approach shots, I think body movement forwards probably ensures that the racquet goes through the range of motion that's necessary, and that the player is not standing in one spot and reaching forwards. Of course, such movement also helps the player get positioned early for the next shot, as we know.