The Geometric Complexity Theory (GCT) program was introduced by Mulmuley and Sohoni to attack fundamental lower bound problems in complexity - such as P vs NP - using algebraic geometry and representation theory. In addition to presenting the basic structure of the GCT program, I will discuss some of the intuition behind the use of algebraic geometry and representation theory in complexity. This is an expository talk; the only mathematical background presumed is a basic familiarity with group actions and polynomial rings.