Most projects include elements of plan-driven and agile processes. Deciding on the balance depends on:
Is it important to have a very detailed specification and design before moving to implementation? If so, you probably need to use a plan-driven approach.
Is an incremental delivery strategy, where you deliver the software to customers and get rapid feedback from them, realistic? If so, consider using agile methods.
How large is the system that is being developed? Agile methods are most effective when the system can be developed with a small co-located team who can communicate informally. This may not be possible for large systems that require larger development teams so a plan-driven approach may have to be used.