In large organizations, resources might be billed to a particular departments budget. So I need to track all of the resources that each department is using. An easy way to do that is with tags.
For example, every time the dev department spins up a new VM, those VMs are tagged with the dept=dev. Marketing has a storage account for graphics and other marketing assets. That storage account is tagged dept=marketing.
When I need to run a report or generate an invoice for the marketing department, I don't have to try and figure out what Azure resources they are using. In the portal, I can go to Tags, and show all resources with the tag dept=marketing.
Tags are even more useful in PowerShell or Azure CLI.. I can return lists of resources where tag=value. Maybe I want to run something against some VMs. Not all of them, just the ones that are being used in a test environment. If I apply tags to VMs, like env=test, env=dev, env=production, I can differentiate between the VMs easily using those tags.
So yes, it is all about organizing resources. As you grow, your Azure subscription might contain 10k, 100k, or more objects. Tags make it easier to organize and work with those objects.
Smaller organizations might not have any use for tags. I don't use them in my demo environment. They are optional.
Does that help?