According to the United States Census Bureau, the town has a total area of , of which is land and is water, comprising 4.14% of the town. New Hampton is bounded on the west and southwest by the Pemigewasset River. Pemigewasset Lake is in the center, and Winona Lake and Lake Waukewan are in the northeast. The highest point in New Hampton is above sea level atop the west ridge of Hersey Mountain, whose summit lies just over the town boundary in Sanbornton.