Publishing portal is typically used for web content management (internet sites), Collaboration portal is typically used for intranets.
Publishing portals contains but a subset of the lists, libraries and subsite templates types you find in Collaboration portal site definition template. Collaboration templates on the other hand contains the lot! You got centralized document repository, site directory, reporting sites etc.
Find a good blog post on the different concepts here
often you will see developers start "from scratch" with a blank site definition and use code to add the needed functionality or use feature stapling to either remove or add functionality from an existing site definition.
See a discussion on that topic here