Tuesday at the gym, one of my roommates was having trouble with form on the Bent Over Barbell Row. Frustrated after a few unsuccessful tries, he said something to the effect of, "This is stupid. We should be using machines, anyway. They're better because they let you use more weight."
I've been lifting for almost 10 years. I'm not a certified personal trainer or fitness expert, but I have a pretty darn good idea of what I'm doing in the gym. Everything I've read, everyone I've talked to, and all of my experience tells me that, outside of a few specific scenarios, free weights are far superior to machines.
Free weight exercises work more muscles than machine exercises. Think about the bench press. You push against the bar or machine handles by contracting your chest and triceps, thus lifting the weight. You use the same primary muscles, whether you use free weights or machines. But with free weights, you also use your shoulders, biceps, back, core and even your legs to balance the bar and keep yourself in position on the bench. Using more muscles = building more strength.
So free weights help strengthen supporing muscles, whereas machines do not. This translates to more real-world strength. If you're helping a friend move a couch to his third-floor apartment, the stairs won't come equipped with guide rails or pulleys to make the job easier. You'll have to use your stabilizing muscles to support the weight of your body and the couch, and if you've been working out solely on weight machines, they won't be up to the task.
By controlling your motion during the exercise, machines prevent you from developing proper form in your lifts. This may not seem important at first, but think of the couch example again. If you've trained your body to push up against a weight while balancing with no outside support, then you'll be able to move the couch safely and easily. If, on the other hand, you're used to being able to just push willy-nilly against the bar without a thought for balance or alignment, then your body isn't trained to balance itself under the weight of the couch, and down you go.
Some people, like my roommate, think that machines build more muscle because they let you use more weight. Intuitively, this seems to be a solid argument. But weight machines control the motion of the weight you're moving and allow you to cheat by pushing at an angle slightly different from the angle at which the handle or bar is actually moving when you get tired. This means that you can do more weight on machines, but you're not working your targeted muscles any harder than you would be by doing free weights.
To conclude: working out with free weights develops supporting muscles, balance and form, whereas working out with machines does not. Using free weights also allows you to use less weight while working your muscles as hard or harder than you would on a machine, which means you have a lower risk of injury or overtraining on free weights than you do with machines.
Machines are not evil. They can be useful in some scenarios -- for people who aren't strong enough to support themselves on a movement without assistance, for beginners who need to build a little confidence before moving on to free weights, for rehab of a specific joint or muscle, etc. But for building strength and overall fitness, machines can't hold a candle to good ol' free weights.