Calling images from a database with custom tokens in mass mailings
What you're describing is technically possible, but far from streamlined - so whether it's worth doing is up for debate.  If it's a feature that's interesting to you, you may want to write (or fund someone to write) an extension to facilitate it.

Let's talk about doing this with custom fields (Administer menu > Customize Data and Screens > Custom Fields) and with an extension.

Custom fields are available as tokens, and they can contain HTML links.  So you can create a custom field called, e.g., "image link" on a contact.  You can then insert a token in CiviMail - see "Using Tokens in Emails" on this page in the documentation.  It will look something like this:

Here's a link to the image: {contact.custom_8}


That's not quite what you want - you want to embed the image into the mail itself.  So instead, do:

Here's your image: &lt;img src="{contact.custom_8}"&gt;


Note that you'll need to go into "HTML Source" mode on your mail to enter that.

You can store the images wherever you like.

Now, this is unwieldy, because you have to populate the custom field for every user who receives the mailing.

If you went the extension route, you would use civicrm_hook_tokens and civicrm_hook_tokenValues to create your own tokens.  You could then make tokens that created images based on, say, someone's interests or any other data you already stored.  There's a good article here if you want to go that route, or check out the excellent Fancy Tokens extension for a solution to a related problem.