Monroe is a town in Grafton County, New Hampshire, United States. The population was 864 at the 2020 census, up from 788 at the 2010 census. The town is located along the Connecticut River, across from Barnet, Vermont. It was originally chartered as part of Lyman.