I bet there's a nice geometric way to do it, but I prefer to just use complex numbers.

One thing you should know is Euler's identity: e^iø = cos(ø) + i·sin(ø). Then, e^i·(a+b) = cos(a + b) + i·sin(a + b), right? But e^i·(a+b) = e^ia · e^ib = (cos(a) + i·sin(a)) · (cos(b) + i·sin(b)). Expand those out to get cos(a + b) + i·sin(a + b) = cos(a)cos(b) + i·cos(a)sin(b) + i·sin(a)cos(b) – sin(a)sin(b). If you collect the real terms, you get cos(a + b) = cos(a)cos(b) – sin(a)sin(b), and if you collect the imaginary terms, you get sin(a + b) = cos(a)sin(b) + sin(a)cos(b) (or in the other order, but it's the same thing). That's pretty simple, no?