I'd say that "навещать" means to visit someone or something you already know well in order to refresh memories or like. And yes, "посещать" is of very formal style while"навещать" is of personal...