Пусть то, что формирует html с формой (скрипт или посто html-файл) имеет имя ScriptForm.
html-код формы можно сделать например таким:
<form id="FormName" action="ScriptForm" method="..." target="_blank">
...
<input type="submit" onClick="document.getElementById('FormName').reset(); return 1;">
</form>
Конечно это грубая голая схема. За синтаксическую правильность не ручаюсь, писал на ходу, прямо здесь.
Можно ввести скрытое поле, например "innew". И проверять: если оно не установлено, то просто "рисуем" вышеприведённую форму, только уже с установленным "innew". Если-же по POST или GET пришло "innew", значит надо опять просто отобразить форму, только уже без кода очисти и без 'target="_blank"'
Это тебя устроит? Или я чего-то не так понял?