Try this
select a.userid as [UserId],c.fullname as [Name],a.[VoucherDate],CONVERT(VARCHAR(11),
b.regdate,106) as [JoiningDate],b.rankno as [Rank],d.rankname as [RankName],b.branchuserid as [Branch],c.address as [Address],
a.voucherno,a.tds as [TDS],a.othercharges as [OtherCharges],a.netamount as [NetAmount],a.sc as [AdminCharges],a.levelamount
as [LevelAmount]
from users b
join (select a.userid as [UserId],CONVERT(VARCHAR(11),a.voucherdate,106) as [VoucherDate],
a.voucherno,a.tds as [TDS],a.othercharges as [OtherCharges],a.netamount as [NetAmount],
a.sc as [AdminCharges],a.levelamount as [LevelAmount],
ROW_NUMBER() over (partition by userid order by VoucherNo desc) as Row_no
from vouchers as a) as a on a.userid=b.userid and Row_no=1
Join profiles c on b.accountid=c.accountid join ranks d
on b.rankno=d.rankno
where a.voucherdate >= '11/01/2013' and a.voucherdate <= '12/01/2013' and
a.userid in ('V2W645346','V2W545647','V2W853227','V2W394436','V2W255329','V2W965239')