I agree. Many of the questions and answers surrounding "which math course" seem to be thinking about the question wrong.
In 35 years of programming I probably never used Calculus directly in developing a program or wrote a program to solve a problem that required calculus. Would I argue against including Calculus in a Comp. Sci. curriculum then? Absolutely NOT.
When I look at what I do every day as a software designer / developer and I ask where did I learn to do that, the answer is often "in Calculus class". Why? "Limits"! -- not Limits themselves, but I think the concept of Limits as used in calc was the first real abstraction I had to grapple with.
If you ask me what High School class was most useful in preparing to be a programmer, I'd say "Geometry". Why? Proofs!
When did you ever need to know some factoid you picked up in a history class? Should you not take history?
The important aspect of most classes is NOT the facts or fomulae you might learn, but the ways of thinking you learn.
Geometry / Proofs in general teach you logical thinking and step by step progression. Constructing a proof and constructing a program are quite similar. That should make it clear that is important that you actually do the proofs, not just read someone else's proof -- you won't learn to program by reading about someone else writing a program.
I agree with the "take 'em both" school of thought -- not only are the thinking processes different, but the concepts in both subjects are also useful to you.
I'm a big fan of automata theory and formal languages, too. You'd be surprised how often you can set out to solve the Halting Problem without recognizing it -- and if you don't know what it is and why it's not worth trying to solve ... It's also useful to know the limitations of regular expressions and how to write problem oriented languages that are easy to parse...
But the most important aspect of both courses is how they stretch your mind if you can get your head around the proofs. You learn to spot weaknesses / holes in proofs and it's amazing what sorts of problems you can spot in requirements. And debugging proofs is good practice for debugging programs.