Я делаю так:
<table id="table" data-template="<tr><td><input type=«text» name=«mas[$$id$$]['name']»></td><td><input type=«text» name=«mas[$$id$$][col]»></td></tr>">
<tr><td><input type=«text» name=«mas[1]['name']»></td><td><input type=«text» name=«mas[1][col]»></td></tr>
<tr><td><input type=«text» name=«mas[2]['name']»></td><td><input type=«text» name=«mas[2][col]»></td></tr>
<tr><td><input id="add" type=«button» name=«add» value=«еще»></td></tr>
</table>
<script type="text/javascript">
$(document).ready(function(){
$('#add').click(function(){
var template = $('#table').data('template');
var index = $('#table > tr').length;
template = template.replace(/\$\$id\$\$/g, index);
$('#table').append(template);
});
});
</script>