A big user story that takes longer than a single sprint/iteration, and thus is broken down into smaller user stories. Typically represent a high-level feature of the developed product.
Mike Cohn's definition of Epic:
A Scrum epic is a large user story. There's no magic threshold at which we call a particular story an epic. It just means “big user story.” I like to think of this in relation to movies. If I tell you a particular movie was an “action-adventure movie” that tells you something about the movie. There's probably some car chases, probably some shooting, and so on. It tells you this even though there is no universal definition that we've agreed to follow, and that an action-adventure movie must contain at least three car chases, at least 45 bullets must be shot, and ….
So, “epic” is just a label we apply to a large story. Calling a story an epic can sometimes convey additional meaning. Suppose you ask me if I had time yesterday to write the user stories about the monthly reporting part of the system. “Yes,” I reply, “but they are mostly epics.” That tells you that while I did write them, I didn't get the chance to break most of them down into stories that are probably small enough to implement directly.