I would stay in Galveston; it's a lot more fun than Houston. Plus, with Houston traffic being famously brutal, I would want to stay closer to the ship rather than risk sweating through a traffic delay.
Comfort Suites in Galveston (3606 89th Street, Galveston, TX, 77554 (409) 741-9977 1350) has good reviews. Price goes up the longer you wait, but generally $144 the night before a cruise. They have a shuttle to take you to/from the terminal for $25 pp round trip, which I think is reasonable, and then you get free parking (for those of you driving in).