How do you know when to use one approach versus another, e.g. Agile vs. Waterfall?

Can anyone please tell me how do i know when to use one approach versus another, e.g. Agile vs. Waterfall.