Heath Ledger, Jared Leto, and Cesar Romero, IMO. I don't think Nicholson did a bad job. He did what Tim Burton wanted and was groundbreaking for its time, but I feel like Ledger, Leto, and Romero did the best job overall.
I cant say to much about Romero, due to that I actually never saw the movie with him as the Joker. Jared Leto, I think he tried way to hard to be a better joker then Ledger. Don't get me wrong he played a good joker and I wouldn't want to have an encounter with him, but I feel Ledger was the best joker by far and I don't think that we will ever say, in future batman movies, that whoever played the role of the joker, played it better then Ledger.
Ledgers Joker performance was one of the greatest played movie roles by any actor ever in my opinion.