I have not seen a specific tool that does this, but my approach would be to define the new field and then create a powershell script that would iterate the items and move the data from source to destination field.
The field could be defined in the powershell if needed.
The challenge with this approach is that the update would be logged so all records would be showing as recently being modified by the user running the update. This would also be a challenge with lists or libraries with workflows that execute on edit.
Far from perfect, but it is a solution.