Read this:
http://blog.sqlauthority.com/2007/03/29/sql-server-difference-between-distinct-and-group-by-distinct-vs-group-by/
And try to remove the parenthesis from distinct. It is not a function.
Actually you do inner join, but you are using a WHERE without parenthesis. The OR can mislead you, be aware of the precedence!
This is the JOIN part, but I can not transcribe the rest, because I do not understand the logic. I don't know what your intention was
Select Distinct S1.RoomType,t.HotelName,S1.CIN
From AgentPackagePrice t INNER JOIN BookDate S1 on t.PackageNo=S1.PID and t.RoomType=S1.RoomType
WHERE...