ASP.NET impersonation allows the ASP.NET code to run as different users.
If you use only one account to migrate data between SharePoint farms, all the records will eventually be marked as modified by that account.
By using impersonation, you will be able to retain user history.