It actually happens fairly often. The last was in 2004, where a Minnesota elector (who would not own up to it) voted for Edwards (the VP candidate) instead of John Kerry. The assumption has been that this was done out of incompetence rather than malice.
The cycle before that, the DC elector refused to vote, in protest to DC having no congressional representation.
Wikipedia has a full list.
The last elector to cast a vote for a presidential candidate of another party was Roger MacBride in '72, who pledged to vote Republican but instead voted for the Libertarians. (Incidentally making Tonie Nathan the first woman to ever receive an electoral vote for POTUS)
The only election I can find where a faithless elector voted for the POTUS candidate from the other major party was in 1796, where Samuel Miles (our very first faithless elector) pledged to support the Federalist, but voted for the Democratic Republican (Jefferson) instead.
Answering a question in the comments, there further was never an instance where faithless electors significanly altered the results of an election. In fact, it appears that electoral votes not being particularly close may be an inducement to faithless electors, as most incidents seem to be protest votes.
There was however one interesting incident of mass-faithlessness. In the 1872 election one of the major-party POTUS candidates, (apparently as a gift to us US history nuts) died after electors were chosen but before they could cast their votes. He'd only gotten 66 of them (nowhere enough to challenge U.S. Grant), but all but three ended up voting for other people. Under the circumstances, rather than tar them as "faithless", it may be right to look further askance at the 3 who remained faithful and voted for the dead guy.