К сожалению, сейчас не имею времени написать и проверить полноценный пример, но могу подсказать, в какую сторону Вам нужно смотреть для решения подобных задач в корне. Для PHP (в т.ч.), есть масса всяких редакторов XML/HTML DOM-деревьев, в частности: phpQuery, PHP Simple HTML DOM Parserи так далее. Ваша задача, перед сохранением в БД - прогнать код через такой фильтр.
Решение с "регуляркой" будет быстрее и проще, но только "прямо сейчас", иначе говоря, оно не позволит Вам быстро и удобно решить подобную задачу в будущем, даже при незначительном изменении условий.
P.S. Не могу точно сказать, какая из библиотек для обработки DOM'а будет наиболее оптимальной в Вашем случае, но, данная рекомендация - на ответ или истину не претендует и возможно просто пригодиться Вам в последствии, нежели "прямо сейчас".
Через дом, конечно, можно. Но это может быть довольно затратно, а так как эти теги вставляет ваш редактор (т.е. структура достаточно детерминирована), то много проще обойтись регекспом.
Лучше всего разбирайся со своим редактором, потому-что так как ты хочешь это называется костыли.
Ну если очень нужно, то вот код. Он убирает тег p только если внутри него находится одна картинка. Особо не тестил, так что проверяй.