동경 127°43′, 북위 34°53′에 위치한다. 여수반도의 동북쪽 광양만에 있다. 면적은 9.46㎢이고, 해안선 길이는 19.14㎞이다. 원래 순천부에 속하였다가 돌산군이 신설되면서 돌산군 태인면이 되었다. 1914년에 행정구역 개편으로 여수군 삼일면에 편입되었고, 1998년에 통합 여수시에 포함되었다.
섬의 모양이 고양이처럼 생겼다 하여 묘도 또는 괴섬(고양이섬)이라 한다. 고양이섬인 묘도에는 쥐를 의미하는 ‘서(鼠)’ 자와 음이 같은 서씨(徐氏)가 살 수 없다는 풍수전설이 전해온다.
지질은 주로 낙동층군하부로 이루어져 있다. 서쪽에 있는 봉화산(烽火山, 246m)을 비롯하여 구릉성 산지가 산재(散在)한다. 중앙부와 남쪽은 경사가 완만하여 촌락과 농경지가 분포한다. 해안은 사빈해안(沙濱海岸)이 많으며 간석지가 넓게 발달해 있다.
동쪽과 남서쪽의 만입지(灣入地)의 개펄은 방조제로 막아 농경지로 이용되고 있다. 1월 평균기온은 2.1℃, 8월 평균기온은 24.8℃, 연강수량은 1,247㎜이다.
2009년 기준으로 인구는 1,385명(남 737명, 여 648명)이 거주하고 있으며, 세대수는 515세대이다. 취락의 분포는 섬 중앙의 유동마을과 남쪽 해안의 장촌마을에 집중되어 있다. 토지이용 현황은 논 0.92㎢, 밭 1.38㎢, 임야 5.7㎢이다.
주요 농산물은 쌀·맥류·서류·마늘 등이다. 어업은 영세하나 광양만을 비롯한 주변 해역에서 굴·꼬막·피조개 양식이 활발하며, 멸치·장어·낙지·개불 등이 어획된다.
매년 정월대보름 마을 주민이 모여 애용노래·가래질소리·술배소리·배치기소리 등의 흥겨운 가사와 더불어 떼뱃놀이를 즐긴다. 여수로 이어지는 여수대교와 광양으로 연결되는 이순신대교가 2013년에 개통되었다. 교육기관으로는 묘도초등학교가 있다.