People often contrast agile development with the old waterfall process, which I think is an unfair comparison. For example, Clinton Keith compares the development of his old game Midnight Club, which used a waterfall process, with agile development in his recent post No Silver Bullet. His conclusion is that the process itself is just part of the puzzle of what makes a succesful product. Using agile methods doesn't guarantee a hit game (or whatever you're making), just as using a waterfall process doesn't guarantee the project to fail. He's completely right in this, but did you notice that he compares agile to waterfall, as if there is nothing in between? In my first software engineering classes back in 1992, long before anyone had heard about agile, I learned that waterfall was something old and not a very good process. Any modern process is iterative, so saying that agile is better than waterfall is like saying that using a modern IDE is better than using punched cards.
While I'm attracted to agile processes because they make very much sense, I think that many of the agile success stories can be attributed to the fact that an agile process is better than having no formal process at all, or better than an old-fashioned waterfall process. It would be more interesting to contrast an agile process with any other modern process. Beating the dead waterfall horse is not a very good case for agile.