Of course discreet math would mean that it's subtle and below the radar, which is an interesting concept but probably not worth university credit.

If you have to choose between the two, then discrete math is really the best one. As a long time programmer and CS professor, the basic concepts of graph theory and propositional logic are probably the most useful subfields of math to computer scientists, especially when a class like that includes stuff about functions (i.e. prove/disprove that if f is 1-1 and g is 1-1, then (f o g) is 1-1). Even if it doesn't, you need to understand deMorgan's law at a deep level, and that sometimes a complicated logic expression can be simplified down to nothing if you just think about it. The concept of a graph is incredibly useful for representing data of all kinds and even if you don't remember the relationship between the number of edges and vertices in a tree, seeing graphs once will give you a really useful abstraction that handles heaps and heaps of real problems you'll encounter as a professional.

People tend to fear and/or discount a class like your discrete math one because it involves proofs, and few programmers use proofs in their programming. But IMHO, the point of teaching proofs is not that programmers should be good at proofs. It's that writing proofs requires you to learn a system with a completely new set of rules, and apply those rules very carefully to achieve your result (aka, teaching you a new kind programming and helping you hone those skills so when your boss drops a new language manual on your desk and says you need to be programming in it in 48 hours, you stand a chance of succeeding).

Also, doing (real) proofs requires you to think really deeply about problems. I tell students mathematicians do proofs to 1) show something is always true, 2) learn something deeper about the problem itself. Both are useful in programming, but #2 is especially so, because that sort of thinking is what enables a programmer to keep track of the forest for the trees. When you're debugging annoying bug #257, you're more likely to notice that this larger solution will solve #257 plus a whole bunch of other annoyances at the same time.

As many others have said, the vector math is great for graphics and signal processing. But I think the best thing you can get out of that class is an intuitive understanding of the concept of a vector-space, because if you get that, it's useful across a far wider swath of programming than just graphics and signal processing. Unfortunately, you don't often learn that, because in a standard linear algebra class what you learn about vector spaces is proving their rank, their null space and a whole bunch of stuff that I don't think has much application even when you're doing graphics and signal processing.

Finally, since I'm already on my soap-box, I'll point out that you might actually enjoy discrete math in spite of your dislike of math. All the math you've likely seen so far is what mathematicians consider Analysis. The other two big branches of math are called Algebra (you'd see a bit of this in discrete, but it has nothing to do with what you learned in high school), and Geometry/Topology (which doesn't have much to do with what you learned in high school). I never enjoyed Analysis that much and there was some serious arm twisting to get me to try the other two branches. But I found out that Algebra used most of the same thought processes that I'd already developed with programming, and it took my programming to a whole other level, not because I often directly used that kind of math in my code, but because it helped my brain think in a more abstract way which let me tackle harder problems in code than I could before.

It's like lifting weights -- I don't think I often do things on a day to day basis that could be classified as a military press or a leg curl, but I know that if I life it just makes me a stronger and healthier person and that's good enough for me.