I would say for being a good engineer two things are (absolutely) necessary:
1) Clear understanding of theory (behind engineering principles)
2) Ability of putting theory into practice by experimenting (to be able to relate theory to real world application/s).
I would say you have to be able to think about a problem and understand it as best as you can so you can come up with the best solution. Most of the problems you come up against are not simple maths questions or yes/no answers, they require a bit of understanding and thought before you can come up with the best solution.
The theory you learn at school and university will help you come up with the answer, but you do need to have an enquiring mind to be able to work out what parts of that knowledge will be the best to use.