Invariant theory has been at the cornerstone of the development of algebraic geometry and representation theory in modern day mathematics. We will give a brief introduction to the subject, starting with fundamental questions posed by Hilbert in the beginning of the $20^{ m{th}}$ century. We will then give answers to many of these questions in the concrete example of $m$-tuples of $n imes n$ matrices under the simultaneous action of $SL(n) imes SL(n)$ on the left and the right. Time permitting we will discuss the importance of invariant theory to the fundamental lower bound problems of Complexity theory in the Geometric Complexity Theory program of Ketan Mulmuley and Milind Sohoni.