Mach 'pre plans' the moves that needs to be made and makes this pre-planned buffer available to motion control plug-ins. The plug-in will package up the movements in the buffer in the fashion needed for that particular motion control card and send it to the card. The motion controller will will buffer a small number of moves to negate and delay due to the time it takes to transport the data. The motion controller then outputs the needed step pulse to get to where Mach tells it to go. Since the motion control card does all this in dedicated hardware the result is a much more stable (smoother) and faster (potentially) than you can get through the parallel port.
The motion control cards that work with Mach all have different abilities. The Galil comes in several flavors and can ran analog servos as well as digital servos and steppers, they are really capable units and generally more expensive than other options. The SmoothStepper will work with stepper and digital servos (S/D input), it was designed to interface with Mach and is at the other end of the cost scale. The other motion board that work with Mach are in between these two.