as John Constantine
If they ever portrayed the character properly, Tim Roth would be my first choice. When I first read Hellblazer, the character I pictured looked and sounded almost exactly like Tim Roth.
https://secure.wikimedia.org/wikipedia/en/wiki/John_Constantine
Only difference is that John Constantine was originally from Yorkshire, while Tim is clearly a Londoner.
Screw Keanu Reeves. He's not even English.