Harry Connick, Jr?
I'd vote for him. Or Johnny Depp. But Leonardo?!?!?!?! He is waaaaay to girly to play Frank.
The bonus is that he wouldn't have to have his singing voice dubbed, cause he could do it as well, or in some cases, better, than Ole Blue Eyes.