"Variable voltage" is done using PWM; see the reference page for analogWrite(). Using PWM you're pulsing power to the device between full off to full on in 255 steps, ~500 times a second.
If your heating elements need more than 20ma of current then you'll need to use a transistor. 20ma of current is the recommended limit for an Arduino output pin.