What is a pulse width modulation for DC motors really?
Take a look at this: -



Here are two PWM waveforms; with with low duty cycle and one with high duty cycle. Take note that the average value of the signal equates to a DC level (dotted line). This could be achieved by controlling (say) a motor with a variable resistor but the motor current would flow thru the variable resistor and dissipate lots of power as heat.

Alternatively, if you rapidly apply high pulses and low pules instead, the average value remains the same (as when using a variable resistor) but because a semiconductor switch is being used the power dissipation in that switch is theoretically zero. this is because that switch is either open circuit or short circuit.

So you need a clock signal and a dc input. The dc input represents that desired average DC output you want on your PWM. Using a 555 can achieve this but there are tons of methods. PWM, as a raw signal from a 555 needs amplifying by power transistors if you are driving a motor.

That's the basic PWM system and an addition is to add a control loop around the system to regulate things.