The Embassy Suites on Thomas is good. If you are into Mexican food, try Garcia's. There are several in town. We usually went to the one just off Camelback.
Grand Canyon - you can stay at the Canyon (Days Inn, Comfort Inn) or about 1 hr away in Williams. Either way, expect to pay about $70/nt for a 2* hotel.