Todo depende del problema que está tratando de resolver. Obviamente, puede resolver cualquier problema en cualquiera de los estilos (de procedimiento o OO), pero generalmente puede averiguar en las etapas de planificación antes de comenzar a escribir el código que le conviene más.
Algunas personas les gusta escribir casos de uso y si ven muchos de los mismos nombres que aparecen una y otra vez (por ejemplo, una persona retira dinero del banco), entonces siguen la ruta OO y usan los nombres como sus objetos. Por el contrario, si no ves muchos sustantivos y hay realmente más verbos, entonces el camino a seguir puede ser de procedimiento o funcional.
Steve Yegge tiene un great but long post como de costumbre que toca esto desde una perspectiva diferente que también puede ser útil.