Hi!

If you're referring to the PolySoup SOP node, all it actually does is take input polygon primitives and try to combine as many as possible into fewer polygon soup primitives representing the exact same polygons.
Before Houdini 16.0, this made for a large memory and time savings in many cases, mostly from reduced overhead, but also from less duplication in vertex or primitive attributes. In Houdini 16.0, it's still a bit of savings to use polygon soups, particularly for vertex attributes, but the in-memory representation of polygons was changed drastically to reduce overhead in many cases.
The down-side of using polygon soups is that, in order to change the topology, they usually have to be converted back to regular polygon primitives, because they're optimized for the case where topology isn't changing. Many SOP nodes that do more than just modify attributes don't support polygon soup primitives.
One use case where some people apparently like to use polygon soups for logistical reasons is to have a separate polygon soup for each uv island, (or other “islands”), so that they can more easily manupulate individual uv islands, since each island is one primitive. You can set up something like that by adding a primitive attribute whose value indicates which uv island each polygon is in, and then putting the geometry through a PolySoup SOP, and it will make one polygon soup primitive for each combination of primitive attribute values. Just make sure that you don't have any primitive attributes that vary for each primitive, else you'll end up with one polygon soup per polygon, and a lot more overhead than you'd have had otherwise.
Hopefully that helps clarify things a bit.