Monroe is a town in Grafton County, New Hampshire, United States. The population was 759 at the 2000 census. It is a narrow strip of land located along a bend of the Connecticut River, across from Barnet, Vermont. It was originally chartered as part of Lyman.