Many problems in applied science deal with systems that involve more than one input variable. A good PDE course will touch both on analytic methods and numerical methods. From this I think you can see why it would be a valuable subject to choose.
I really can't see a huge amount of benefit for engineering with regard to Number Theory and Abstract Algebra, but for computer science number theory might be beneficial especially in the context of cryptography.
Personally if you want to do engineering any subject where you "get your hands dirty" has my vote. A lot of math courses work with "nice clean models" that have analytic solutions but most modeling problems aren't like that. So if you get courses that deal with "dirty" models that you have to use and analyze in any kind of context (biology, economics, physics, chemistry etc) then that will definitely help you.