Waterfall vs Agile

Waterfall vs Agile:  Which one's BETTER from a development perspective?   Which one's BETTER from a test and verification perspective? 

In general, in what type of cases is one method "better" than the other?  (Find some references to support your choices)