Hey there. Actually Custom Fields is exactly the feature that you need to use. It's extremely flexible, and will do what you ask -- if you code it right.
1. First, a custom field can contain ANY content that would be postable (text, a URL, or some HTML code for anything like showing an image). Example of a custom field,
KEY = Illustration For This Post
VALUE = november-9-illustration.jpg
For this, #1, I recommmend the plugin Custom Field Template, but it is NOT required. You can do it with WordPress out of the box.
2. Second, you can place the output of a custom field anywhere in your theme templates. In my example,
you can display the jpg that is associated with that post, on the Single Post template (so it will appear on the webpage when someone is viewing that post).
For this, #2, I recommend the plugin Get Custom Fields, but again, this is not required and you can do it with hand-coding without a plugin if you want.
3. Third, while it's true that custom fields output is an unordered list, you can choose to ONLY display 1 item of the list. For example on the single post page for the post "November 9 How My Day Went", you can display only the custom field value "november-9-illustration.jpg" matching the key "Illustration for this post".
4. Fourth, again about unordered lists: using CSS language, you can style an unordered list to appear any way that you wish. It does not have to look like a "list". It can just be content, in-line, or listed, or just appearing as a single item/element.
In conclusion: Custom Fields can be used to put any content, anywhere, and the content is associated WITH THAT POST, so it's individual per-post.
You can also aggregate the values of 1 key, onto your homepage. For example,
Here Are All My Illustrations For All My Posts This Year:
1.jpg
2.jpg
3.jpg
Hope this helps you to unlock the power of the custom fields, the most underrecognized feature of WP, in my opinion