SilverStripe also has a Diff library bundled (framework/core/Diff.php) which is used for showing diffs between page versions (DataDifferencer), haven't used it too much so I personally can't help much but take a look to see if those classes can help.
http://api.silverstripe.org/3.0/framework/misc/DataDifferencer.html
The usage of that is something like
function getDifferences() {
$obj1 = DataObject::get_one('Member');
$obj2 = DataObject::get_one('Member');
return new DataDifferencer($obj1, $obj2);
}
// then in the template
<% with Differences %>
<% loop ChangedFields %>
<dt>$Title</dt>
<dd>$Diff</dd>
<% end_loop %>
<% end_with %>
How you get that displayed to the user depends on your use case. You could embed the template as a FormField within model admin or a separate controller would work.