What is the difference between coloring a model with materials vs textures?
Texture
Textures give you the pattern. This can be an image or a computer generated pattern. It can have colors or it can be black/white. It just simple pattern without any additional information. It doesn't know how rough the surface is. It doesn't know if it's metallic or not. It doesn't know if it emits light or lets it pass through. Just plain picture. In node editor you can manipulate textures with converter nodes and they output different texture.


Material
Material is what you get when you combine all the properties that the surface has. Material can have textures in it. The pattern is still there but there are so much more. There is the pattern but also in the pattern there are bumps that reflect light. There are areas that are metal. There are areas that are see through and there are areas that are mirror like.


Before Principled BSDF shader you had to use multiple shaders to create your material. Now you can do quite well with just a single shader. You can think of Principled BSDF as a combination of multiple shaders. Basically you have textures and you feed them into shaders. In some cases your textures may just be black or white (0 or 1) if you want the whole material to be uniform. For example the whole material might be metallic and the metallic value would be 1 everywhere.
You then combine your shaders and feed them into material output. This is the material that you have.
If you don't use textures then your material has the same property everywhere. If you want to have different properties at different parts of your material then you have to use textures.