There is information on the [u]Arduino Playground Page[/u] about interfacing with motors & high power devices.
With any project, you'll need to break it into parts. With the Arduino (or any microprocessor/microcontroller project) you can start by separating the the project into 3 main parts - The input & user interface, the software (firmware), and the output & power control.
On the output side, it's often best to start by turning on & off LEDs before actually connecting motors & relays.
And, you can usually do lots of output & hardware testing under software control (with little or no user interface).
AC POWER ISOLATION - If you are running motors & heaters from AC line voltage, you MUST electrically isolate the Arduino (and yourself) from the dangerous voltages. This can be done with relays, or optical isolators (or a solid state relay, which is electrically isolated). The details of what's best to use depend a couple of factors, including what you are trying to control and what kind of control you need, but for now just keep in mind that there must be no direct electrical connection between the Arduino and the AC power.
MOTORS - Most applications will use a "regular" AC or DC motor. These are fairly easy to control with a relay, transistor, or MOSFET. They tend to run fast and are often geared-down. DC motors are easy to reverse (by reversing the direction of current flow). To some extent you can control the speed, and the Arduino's built-in PWM capability makes DC motor speed control easy. But, if you need precise speed control or if the load varies and you need constant speed, then you need some sort of speed-feedback and that gets trickier.
With "regular AC or DC motors, or stepper motors, a micro-switch or an [u]Opto-Interrupter[/u] is often used to set the end-points or "home" position. i.e. A garage door opener doesn't need precise control, but it needs to know when the door is fully-open or fully-closed.
A stepper motor generally has 200 steps per revolution (1.8 degrees per step). They require a special driver circuit, and you have to feed it a pulse every time you want it to "step". (Actually, they can be "micro-stepped" to get a fraction of a step.) They can run fairly fast, but not as fast as a DC motor, and most stepper motor applications run fairly slowly. Of course, gears or pulleys can be used for more-precise control. The print head in a printer is usually positioned with a stepper motor. There is usually a home sensor, but there is no other feedback. So if the motor is stalled, or mechanically moved, or something unexpected happens where one or more steps are "missed", the software won't know the true motor position (until it's returned "home").
A servo motor is an angular motor that makes less than a full revolution. They come with a built-in driver circuit, so you only have to supply power and an a pulse that sets the angle. They are in a constant feedback loop. So for example, if you are sending it a 90 degree control pulse and something mechanically slows-down the motor or forces it away from the 90 degree position, it will try to get back to that 90 degree target-setting. Servo motors are geared, so they are not as quick as regular AC or DC motors. Since they don't "spin" 360 degrees, the speed is usually specified as degrees-per-second under some stated load.