La Crosse is a town in Mecklenburg County, Virginia, United States. Its name is derived from the fact that it was a place where railroads once crossed, and there is still a caboose in the center of the town. La Crosse is adjacent to the neighboring town South Hill.