We stayed here recently:
Best Western Alpen Resort
It's not far from the train station, was OK but nothing special, I'd recommend:
Hotel Alpernstern
If you want luxury, the Hotel Post is the best looking place in town I reckon. They sometimes do special deals..
If you're looking for cheapness then try Theodul. They have a hostel-style bunkhouse and individual self-catered apartments:
Theodul
If you do a search for accomodation using the Zermatt.ch website make sure you specify Zermatt and not Täsche (If you haven't been before you should know that this is where you have to park the car and it's a 30 minute train ride from Zermatt)
Hope this helps..