If you decide to code your own, you'll most likely need a database of some sort - though it is possible to do it without one - and you'll probably need to know some type of server-side scripting (though I think you probably could write a CMS with client side scripting, it probably wouldn't be very secure, and it would be rather frivolous).
Using PHP as the language and MySQL as the database is pretty common.
However, with all the pre-built content management systems out there, it may not be worth coding your own (unless you really want to).
For what you are doing, I'd recommend giving Textpattern (http://textpattern.com/) a shot - it's lightweight, clean, simple, and easy to work with. On the down side, it hasn't had any major updates in a while (there have been security update, but nothing else), and some consider it a dead project.
Back on the upside, though, it still has a pretty dedicated user base and some die-hard fans. It works well, supports text and picture uploading/changing, and is, again, lightweight and simple - and it doesn't come with any unnecessary add-ons (forums and what not).
Of course, no one CMS fits everyone or every site (no matter how hard some try), so it may not be right for you.
You should definitely check out Open Source CMS (http://www.opensourcecms.com/), a site that let's you test out various content management systems on their server, so you can try out a few and find which one fits you before you install any yourself.
Hope that helps!
As a side note, I really, really dislike Joomla!. In my experience, it's rather difficult to work with, screws up file permissions (it has a bad habit of changing the permissions of it's files so that no one can edit them - including itself and the admin), and produces web pages PACKED with tables (rather than CSS divs).
-Patrick J. B. Simmons | @hobbramble
"If I could give you one piece of advice to remember for the rest of your life, it would be this: when Patrick tells you to do something, do the opposite." - Nolan Ladewski