CNOT, Hadamard and Φ quantum gates
This is actually kind of complicated. Basically you can:


Decompose a huge multi-qubit operation into many single-qubit gates, but with lots of controls allowed on each single-qubit gate. Think of it as doing Gaussian elimination: you're factoring the matrix into a bunch of simple row operations.
Gradually reduce the number of controls to at-most-one-per-gate, by repeatedly using a construction based on the fact that every operation has a square root and an inverse.
Factor each single-qubit operation $U$ into $A$, $B$, $C$, $\theta$ such that $ABC = I$ but $AXBXC e^{i \theta} = U$. Use that to replace controlled-$U$ gates with uncontrolled single-qubit operations separated by $CNOT$ gates.
Approximate each uncontrolled single-qubit operation with a sequence of $H$ and $T$ gates (which is possible because they correspond to rotations that can approximate any other rotation).


What you're left with is a circuit containing only $CNOT$, $H$, and $T$ gates that approximates the original operation. You need more gates to get a better approximation, but you can get as close as desired. Also the overhead isn't too terrible.

For details of the constructions, and proofs that the errors don't compound in a way that destroys the efficiency of the approximation, you'll probably have to get a textbook or read papers. There's a lot of details.