It's a black and white decision to me. If the image is part of the content such as a logo or diagram or person (real person, not stock photo people) then use the ![]()
tag plus alt attribute. For everything else there's CSS background images.
The other time to use CSS background images is when doing image-replacement of text eg. paragraphs/headers.