Слова "доктор" и "врач" в значении "специалист с высшим медицинским образованием, занимающийся лечебно-профилактиче<wbr />ской деятельностью" - абсолютные синонимы. Пары словосочетаний "посетить врача" и "посетить доктора", "детский врач" и "детский доктор" по смыслу идентичны. Правда, "доктор" в этом употреблении некоторые словари считают разговорным. Большинство же не видят никакой не только смысловой, но и стилистической разницы.
Разница касается лексической сочетаемости. Например, с названием специальности сочетается "врач" ("врач-стоматолог", но не "доктор-стоматолог")<wbr />.
Зато обращаемся мы к медику, используя слово "доктор" ("помогите, доктор!", но не "помогите, врач!").
Слово "доктор" имеет и другое значение, немедицинское, - "высшая ученая степень; лицо, ее имеющее" (доктор физико-математически<wbr />х наук).
Слова "доктор" и "врач" отличаются и происхождением. "Доктор" - от лат. doctor - "учитель, преподаватель". "Врач" - славянское, имеет тот же корень, что и "врать". Буквально, врач - тот, кто врет, но не в современном, а в изначальном смысле слова - "говорить". Первые врачи были заклинателями. Они заговаривали болезнь, таким образом прогоняя ее. Со временем слово обрело значение "колдун, волшебник", затем - "знахарь, лекарь".