hey in your query remove o.id because
for Priyam Shah you have 2 order id. hence it is giving to records.
try below query :-
select distinct U.FirstName+' '+U.LastName as 'Full Name',U.City,U.Email,U.Mobile
from [User] U
inner join [Order] O on U.ID=O.UserID
where U.City like '%puna%'
order by O.ID desc