The advantage of generic plugins such as CoC is that they work for a wide range of filetypes; for example I normally write most of my code in Go and use the Go Language Server for this (via vim-lsc, which is more or less similar to CoC).
This week I did some C programming though, and by just installing the
clangd language server on my system vim-lsc also works with C files: I can use the same commands, mappings, and so forth that I'm used to from using vim-lsc with Go. I have some configuration for it too; for example
gd ("go to definition") opens in a new tab or reuses an existing tab if it exists, and with a new "vim-c" plugin I would have to learn the commands and mappings for it, as well as set it up how I like.
The advantage of plugins like vimtex is that it can be more tightly integrated with the language since it's language-specific, and that you get an "IDE in a box" which can be convenient at times. vim-lsc isn't quite enough for full Go support, so I also use a little additional Go plugin; but if I would use vim-go (which is much larger and includes everything, similar to vimtex) then I would have to install just vim-go and be done with it.