One option is not to move the records at all, but rather to base your invoices on the same tables as your estimates. Then you can use a field to identify which records represent invoices and which are estimates. You can either change a records status from estimate to invoice or you can duplicate the estimate record and label the duplicate as your invoice. (Many times, an invoice and an esitmate aren't exactly the same as you refine customer options during the sales process so you often want to keep the original estimate as distinct form the invoice used to actually bill the customer.
But if you must copy the data from one table to another, Import Records can be used to copy data from one table to another. If you have both an estimates table and a line items table, you'd need to use import records once with each table.