The biggest advantage Android has in this area is that Google doesn't have to get it "right" for everyone. On Android phones you can just switch to one of the other keyboard implementations if you don't like the default.
Smart Keyboard Pro: text expansion, custom dictionaries, custom skins, and more. I'm not the developer even if I sound like a walking advertisement, I just love the app that much.
Shapewriter seems to be recommended alot, but I've only played with different keyboards a bit on my wife's Hero.