В некоторых источниках можно найти устаревшее слово «холень», которое означало буквально «маменькин сыночек». Происходит от однокоренного «холя» — то есть «забота». Если разбираться дальше, то можно найти слова с той же основной в родственных языках: чеш. расhоlе ср. р. «мальчик», расhоlеk «слуга», слвц. раhоlоk, польск. расhоlе̨, расhоłеk, в.-луж., н.-луж. расhоł.
История глагола «лелеять» очень довольно интересна! Например, в древнеиндийском есть слово с такой же основой (lēláyati), оно означает «убаюкивать».
Считается, что изначально матери, которые пытались убаюкать малыша, напевали «лю-лю». Отсюда произошло и «лелеять», и более известное слово «люлька». Сравните с немецким (ein)lullen «убаюкивает».
Получается, что «холить и лелеять» можно перевести на современный язык: «холить» означает оберегать, как любимого сына, а «лелеять» — укачивать на руках. Поэтому общий смысл выражения и сводится к безграничной заботе, опеке и любви.