Here is another variation. This is using the built in query for 'vAC_PrimaryUser'. I basically took the query and made a small modification to add the email address as well.
select distinct vc.Guid [Guid],
vc.Name [Hostname],
[user],
vc.Domain,
vc.[OS Name],
vc.[IP Address],
vc.[MAC Address],
arp.DisplayName [Software Name],
arp.DisplayVersion [Software Version],
a.[Primary User],
a.ResourceGuid
from vComputer vc
inner join Inv_AddRemoveProgram arp
on arp._ResourceGuid = vc.Guid
left join (
select primuser.ParentResourceGuid as ResourceGuid,
ISNULL(userdetails.[Display Name], ISNULL(NULLIF(LTRIM(RTRIM(ISNULL(userdetails.[Given Name], '') + ' ' + ISNULL(userdetails.Surname, ''))), ''), usr.Name)) as [Primary User],
userdetails.Email
from vAssetMaster primuser
left join RM_ResourceUser usr
on primuser.ChildResourceGuid = usr.Guid
left join Inv_Global_User_General_Details userdetails
on usr.Guid = userdetails._ResourceGuid
) a
on a.ResourceGuid = vc.Guid
where DisplayName like 'vanguard Professional%'
and arp.InstallFlag = 1