Which projects are better managed using Agile ?

Is it a matter of project size, a matter of project complexity or a matter of team composition and maturity level ?