Batman Begins.
To me, Superman Returns didn't have good casting or plot; just beautiful action. Brandon Routh was great for Clark Kent, but a stiff Superman. Kate Bosworth? Not much against her, but she's young and her Lois I just don't like. Of course, that's because of the script. Kevin Spacey. Great actor, bad directing on Singer's part. Perry: dull. Jimmy was good though.
Batman Begins has got it hands down. Too bad they had Katie Holmes in the movie though... It would've been perfect without her.