If you search in Google with keywords "cyprus hotels" the first in results are www.cyprushotels.com with rank 2 and 2 links to this site. And second place is www.cyprus-hotels.com with rank 5 and milions link to that site. Why is it like that?
Seriocomic posted almost exactly what I was about to write but I will add a few more points:
First, you have a lot of text on the home page and from a brief glance it looks very keyword stuffed. Obviously you need keywords on the page, but putting "Cyprus Hotels" in every sentence makes it look like spam. Just write naturally!
Second, most of the links to your site come from other sites you own and cross-link on every page. It's easy for Google to see these sites are very closely related and thus will lower the impact those links have. You need to try and get varied back links from external sites.
You need to understand that it's quality, not always quantity that is the ruling factor in these ranking comparisons.
See http://www.opensiteexplorer.org/www.cyprushotels.com/www.cyprus-hotels.com/a!comparison for a better indication of why,
Lastly, the PageRank (what I believe you were referring to when you mentioned "rank 5") has very little to do with where a site will rank for particular keywords. Also be reminded that the rankings you see are most likely tailored to you.