I have studied both CS and Math (I have written two MSc theses) and I can really capitalize on that. Still, I work in academia where the approach is much different. As a regular programmer you wouldn't need much math, but that also constraints areas you can work in. For example you don't need any calculus or differential geometry to use OpenGL, however if you would want to create your own image filters (not just use black-boxes), maybe do some audio-processing or physics, math is essential. What's more, from my perspective, all interesting problems involve math to some degree (on the other hand, from my perspective those wouldn't be interesting if it weren't for that math...).
Concluding first paragraph, I urge you to study math. The thing to decide is how you are going to do it: at the university or by yourself. The second option is available only if you are motivated enough, the first one is constrained by the time you have.
It is more feasible for you to study by yourself if you want to learn just one domain that you like, however, probability that you will need more that one (e.g. calculus and probability theory, or differential equations and numerical methods, etc.) is huge, and then going to campus is recommended.
Whatever you do, please look for courses/books that deal mostly with applied math, as a computer scientist you more often use math that invent new theorems. About the curriculum -- it varies so greatly that I can't be of any help here, the only thing I can say, that nowadays probability theory (not just statistics) is present almost everywhere, and the calculus is sure second to follow (if not first).
(Please note that this only my opinion that is based on info from my friends (they may be numerous, but certainly this is not a representative sample). I do not have any real statistics to tell. To those that think I am skewed for my field: I deal with abstract algebra, graph theory and logic.)
I began graduate school wanting to be an analyst. My first year I did the standard introductory algebra, analysis, and topology sequences. In the second semester, the algebra course did a lot of module theory and homological/categorical things, and I was hooked. I work mainly in module theory because I find it interesting seeing what does and doesn't generalize from vector spaces and Abelian groups, and what I can learn about rings from modules. I enjoy what I do. I'm not at a research university so I don't have to worry if my work isn't fashionable or high-powered. I do it for me, in my own time. I didn't get in the business to get rich, or famous, but to pursue what I consider some beautiful ideas, and maybe make a contribution here or there. It's been a good ride so far.
I think mathematics is always establishing new results. In my experience, the basic graduate texts provide an introduction to the various fields. For the most part, you won't find in them the advanced results you need to do serious research. That's where advanced texts, papers, etc. become very valuable.
Best Answer
I think the best way to understand abstractions intuitively is to study lots of examples. To understand group actions, write some down. Then think about whether each is transitive, whether it's primitive, look at the stabilizers of elements. Verify that the theorem is true; try to understand why in each particular case. Look for examples where some hypothesis fails and see whether (and why) the conclusion fails.
That learning strategy reproduces (in part) the explorations that led to the useful abstractions of group theory. Mathematicians studying the symmetries of various geometrical objects realized that they could reason about the symmetry of just about anything by inventing an abstract language whose definitions captured the essence of the properties of symmetries.
Unfortunately, often the abstractions - the definitions and theorems - take center stage in teaching and learning. Students find it hard to understand what's going on without the examples. I would tell my students that for me the category of groups consisted of those groups with which I was personally familiar. I assigned homework that called for working out examples at least as much as proving theorems.
In your own discipline (computer science) there are analogous historical trends leading from examples to abstractions: the concepts of object oriented or functional programming languages, the development of abstract tools to reason about databases.