The short answer is: Stopping tracking objects requires the request to be stopped before any DNS or HTTP request takes place against that object... and must not be circumvented by other software/addons that then allow it...
For instance, if you block images, but you have another addon/software (e.g. those "website accelerators" that do virtually nothing) that preloads images.. well.. how do the two addons interact? If anything sends that request, you've notified the tracking website.
Why DNS too? If I were an evil company, I'd have both DNS and HTTP checks. If you block images but still for some reason checked the DNS address, I might be able to extract some useful info because you hit uniqueTrackingUUID.example.com, despite not sending the HTTP request.
So, in short, blocking remote images _should_ help, but there's a lot more evil ways to track you... it could even be a url-loaded font (that actually doesn't exist, because it's your UUID for tracking)... or a script... In theory, if you block remote images, your software _hopefully_ blocks other stuff, but that depends on the implementation...
Maybe in-browser clients are different but then it’s more of a problem with that particular implementation than the concept of blocking remote content itself.
Regarding website accelerators, is that really still a thing? Never heard of those.
For mail clients, it comes down to implementation there as well, but it's less likely a major vendor would add tracking protection checkboxes, then fail on them too badly..... Less likely... And they usually don't have add-ons of the like that would be a problem.