I find Johnny Depp is excellent at playing the sort of "trickster" person, the one who will rob a bank and at the same time do it with his own flair. Needless to say, he fit Dillinger's character perfectly.
Christian Bale I find is also great with the more stoic characters. The first scene he is in, he shoots down a fleeing criminal pretty easily. My first thought was, "Batman doesn't se guns!" though.
I particularly enjoyed how Christian Bale's character was able to remove all of Dillinger's friends from the picture, whether it was forcing them to betray him with threats of deportation, arresting them, or plain killing them. He successfully rendered Dillinger ally-less and defenseless, then moved in for the kill outside the movie theater.