As is, the function is fine.
If you have long lists of these, you could consider
static void SetIfNotNull(ref string target, string source)
{
if (source != null)
target = source;
}
SetUpdateUserValue(User updateUser, User user)
{
SetIfNotNull(ref updateUser.FirstName, user.FirstName != null);
SetIfNotNull(ref updateUser.LastName, user.LastName != null);
...
}
This would be a bit better for a long list, but still be prone to copy-and-paste errors.
Alternatively, you could use reflection to iterate the members (or a list of known members), if you are willing to take the performance hit.