Internal links throughout your site help search engines determine the structure of your site.
External links help determine legitimacy. The sites used to exchange links with each other and probably still do. Let's say that your website has to do with the care of pet dogs and you have a friend who runs a dog daycare. You two exchange links (coin the term "handshake links"). SEO practices will see your link protocol link to have more value because it is relative to its content.
In relation to specific brands. Your competitor is probably trying to move up in rank for that specific search. Therefore, every time someone searches for that "brand", they want their website on the first page of results. There are a couple of reasons why you would do this. One, they sell a comparable item and hope to attract customers from "well-known brands". Or, they are a distributor of "known brands" products. Are external links good or bad?
Both of them. They can be good for your ranking if you have enough depth of content to support the link. If you have a few paragraphs and then add an external link to "brand name" in a logical way, it will help you sort in searches for that "brand name". However, this is a case where a little will go a long way and too many will be wasted. SEO ranks historically have counted how many of this, how much of that. The number of your links should always be relative to the content of the page. Are the links themselves "necessary"?
Probably not. You could mention "brand name" (without linking it) in your content and get the same umpf that the link would provide. What happens with the external links that your competitor is missing is that a _outgoing_external_link_ benefits the site that the link leads to much more than the site from which it comes.