I have to second what @dreta said about coming up with the game first, and figuring out what you may need... That being said, since you're using SDL for 2D, obviously SDL has lots of libs that were made just for it to help you out. SDL_mixer, SDL_ttf, SDL_image are all obvious choices for basic tasks. Box2D, Torque 2D, ODE are all great choices for physics, ODE though it's recommended to be outdated and is technically no longer under construction officially, was used by the game World Of Goo. Which has incredible physics and I've not seen a single physics glitch in the three times I've beaten it (personally).
Regardless of whether your game is 2D/3D whatever, I've always been a sucker for a useful script engine. So Lua and Python would be my first choices any day. People say that Python is not good for an embedded or extension script engine for games, but I've used it personally and it's equivalent Lua codes worked actually slower than the Python. I've heard of people using JavaScript in games also, a big one to note is Wolfire's Overgrowth which uses JavaScript for interaction with the other world stuff.
As far as graphics go, it's well known, easy to set up, and perfectly acceptable to use OpenGL built into your SDL games, even for 2D graphics. One game to name that isn't released yet that we're expecting new videos on soon is the http://elysianshadows.com/ project which uses OpenGL accelerated SDL, for 2D.
For XML I stick with tinyXML almost all of the time, it's a great library and it works extremely fast with relatively minimal overhead. To me it just feels cleaner than other XML libraries.
PS: I didn't really get into the other stuff you mentioned, because it looks like everyone else provided great answers for those.
for each... – Yannbane Mar 24 '12 at 18:49