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