Can anyone please explain when should i create communities, portals and sites for salesforce users?
How should i decide whether shoud i go with communities or portals?
You should go with communities unless there is specific functionality that is only provided by a portal. Portals are now old technology and won't be getting any enhancements, as Salesforce are now focused on communities.
Also, if you don't currently have a portal, you can't buy portal licenses. Only companies with older orgs that already have customer or partner portal licenses can buy more.