영흥만(永興灣)의 입구에 해당하는 호도반도(虎島半島)와 갈마반도(葛麻半島)를 잇는 선보다 동쪽, 원산항에서 동쪽으로 약 20㎞ 떨어져 있다.
면적은 약 6.3㎢. 부근의 웅도(熊島)·신도(薪島)·모도(茅島)·대도(大島) 등을 비롯한 50여 개의 섬과 함께 군사상 중요한 영흥만의 입구를 막고 있으므로 6·25때에는 유엔군이 이를 점령하여 원산항을 봉쇄하였다가 휴전 후에야 북한에 넘겨주고 철수하였다. 1968년 1월 여도 부근 해역에서 푸에블로호 납치 사건이 발생하였다.
섬의 동부에 여도산(112m)이 있으며 여기서 남서쪽으로 가면서 고도가 점차 낮아진다. 소나무 이외에 참나무·오리나무·밤나무 등이 분포한다. 서부의 여도단과 와야단 사이에 형성된 만입이 선박의 대피 장소로 이용된다. 섬의 동안에는 10m 가량의 해식애가 있고 서쪽의 좁은 평지에 취락이 들어섰다. 근해에서 북한해류와 동한해류가 합류하므로 좋은 어장을 형성하여 명태·정어리·전갱이·오징어·청어·대구 등의 어획량이 많았다.
광복 전에는 소규모의 어망·어유공업과 선박수리시설이 갖추어졌으며, 원산의 보조어항 역할을 하였다. 『동국여지승람』에는 ‘女島’로 기록되어 있다. 조선 말기에는 함경남도 덕원군 현면(縣面)에 속하였다가 1932년에 적전면(赤田面)과 함께 원산부에 편입되면서 여도동이 되었다.