What is the difference between Посещать and Навещать? I think that they both mean "to visit".
Those words are close, but there is sufficient distinction between them.
"Посещать" means to visit a place or an event. However, you can't normally "посетить" a city or other geographical location - doing so would stress your opinion that this geographical location is first and foremost a touristy location.
"Навещать" means to visit a person or a group of people. However you can "навестить" place with which you have an emotional connection.
"посещать школу" - attending classes at school;
"навещать школу" - to visit repeatedly a school from which you graduated, usually to see your old teachers and to connect with your old classmates;