I'm not using DirectX, OpenGL, or anything. I'm simply using GDI+, which doesn't have this function. I have found a few different ways of doing the addition actually, its the subtraction that is eluding me, including the methods above. I'm thinking about simply including an XNA redistributable and making it easy, but I would rather not.
Here's the method I got, it works good for addition, but subtraction is results in always black.
 private static Color BlendColor(Color destColor, Color srcColor, int mode)
 {
 int r, g, b, a;
 float alpha = (srcColor.A / 255.0f);
 if (mode == ADDITION)
 {
 r = destColor.R + (int)(srcColor.R * alpha);
 g = destColor.G + (int)(srcColor.G * alpha);
 b = destColor.B + (int)(srcColor.B * alpha);
 }
 else if (mode == SUBTRACTION)
 {
 r = (int)(destColor.R * (1  alpha) + srcColor.R * alpha);
 g = (int)(destColor.G * (1  alpha) + srcColor.G * alpha);
 b = (int)(destColor.B * (1  alpha) + srcColor.B * alpha);
 }

 else return srcColor;
 a = Util.Clamp<int>((int)(destColor.A * (1  alpha) + srcColor.A), 0, 255);
 r = Util.Clamp<int>(r, 0, 255);
 g = Util.Clamp<int>(g, 0, 255);
 b = Util.Clamp<int>(b, 0, 255);
 return Color.FromArgb(a, r, g, b);
 }
Expand to see the code.