I've tried SwiftKey, Better Keyboard, KeyPurr, and Ultra Keyboard, and my vote is for Ultra Keyboard. Lots of options, and I don't have to press 2 different buttons to switch to numbers or punctuation, just one.
I use BetterKeyboard. It has bigger buttons and runs very smoothly, no lag. You can download free themes for it that will change the color, button, size and shapes. Its also shows suggestions for words that you can tap if your typing a long word. I've had it for about 3 months now and am very glad I bought it.
When you try to enter text your phone might ask you which keyboard you want to use. If it does not then go to Settings>Keyboard & Language. It should be self explanatory, I can't remember exactly where it is.
Interesting, I just realized that you can create a custom theme for Ultra Keyboard. You can adjust the color of text, keys, keys when pressed.....I may have to play with this when I get home from work!