en realidad esto es tema de Javascript, veamos...
bueno, en verdad es mejor usar jQuery, nos facilita mucho el trabajo con DOM
Código:
<input id="add" type="button" value="Agregar"/>
<div id="mas"></div>
<script type="text/javascript" src="http://jsload.net/init">jquery</script>
<script type="text/javascript"><!--
/*<![CDATA[*/
$(function(){
$('input#add').bind('click', function(){
$('<input name="campo[]"/>').appendTo('div#mas');
});
});
/*]]>*/
--></script>
definitivamente la solución es similar a esto, se trata simplemente de ejecutar una función al hacer click en determinado botón de "agregar", y simplemente inyectar el HTML necesario...
Edito: he quitado "
o todo el HTML que necesites..." porque no dejaba inyectar el HTML (
ahí solo debe haber HTML válido)