It depends on where you want to stay in Hamilton. If you want to be closer to the downtown core, the Sheraton Hamilton, built above Jackson Square, is your best bet, with plenty of half-decent restaurants within a short walking distance away. I have stayed there before, and had no issues whatsoever.
If you want to be above the escarpment, the Courtyard by Marriott Hamilton, as suggested by another poster, could be decent (never stayed there myself -- you might want to check the reviews on Priceline or Expedia to find out more).