I am looking for a messenger which lets me choose who I want to appear online to and who I want to appear offline to (like Windows Live Messenger in Windows).
Is there any thing that could do the job in Linux?
This would depend on the particular service you are connecting to, since Linux clients have no control over what a sever does once it's told it you're online. Some (Facebook chat for example), simply don't provide the option to selectively appear as online or offline - and there's nothing that any client (whether running on Linux or Windows) can do about it.
If you're saying that there's a specific feature of the Windows Live service which allows this, then I don't know which (if any) Linux clients support it. But if it's not available in either Pidgin or Empathy (which I don't believe it is) then I strongly doubt it will be available in any others.