I'm going to go with this:
The vast majority of programming is fairly simple manipulation of states and symbols, which are themselves a small subset of numbers. yes and no are 1 and 0, etc.
The way those manipulations work together quickly becomes very complex.
You can do a boatload of things with just that knowledge. Entire video games. Many types of process control and dedicated controllers. Most reasonable scripting jobs, most "webby" stuff, database stuff, etc.
But then adding some knowledge of math, in the purely technical sense, gives us more symbols to manipulate, and more ways to manipulate them, and this, like any major skills enhancement, definitely makes you a better programmer. Some mid-level math concepts -- very simple in nature, actually -- amplify what you can do so much it's just amazing.
I suspect -- I can't actually tell you because my math is only mediocre to fairly good, nor have I ever knowingly come in contact such a person -- that *really* advanced math skills combined with *really* advanced programming skills (which I can lay claim to) would combine to create a true monster programmer.
I think there's something about the essentially concrete nature of programming, and the incredibly abstract nature of higher math, that makes these dual-facet powerhouses the rarest of the rare. In my experience -- admittedly, just one person's career -- serious math heads tend to be pretty lousy programmers. Lots of bugs, poor structure, little to no sensitivity to shortcuts and loading. Then really great programmers seem to be only sorta capable with math (although what they can do with what they have tends to be quite surprising.) Just an IMHO based on my experience. Something I've found interesting enough to contemplate many times. Having said that, I sure would like to meet Mr. or Ms. combination-o-both. :)