The approach I've adopted is to aim for 1024x768. However, I allow the user to choose his resolution anywhere between 640x480 and 1600x1200. (Well, I do have one game that *insists* on 1024 - no more, no less - but that's the exception...)
Allowing user-specified res and doing 3D at that res, while doing 2D art at 1024, allows the player's 3D to look as clear as he wants it, while the 2D "bitmap overlay" stuff (like HUDs and consoles) is scaled to the screen resolution. So, it looks kinda blocky below 1024, and especially at 640 due to downsampling (big surprise - *everything* looks blocky there, but at least it's supported and visible, if not crisp) and it looks no better than 1024 all the way up to 1600 (since it's just resampled to a higher res, but I *do* make it look good at 1024). However, the 3D stuff matches the selected resolution as chosen, and that's what's important for framerate and most "in-game" clarity.
So, right now, I'm *aiming* my games at 1024x768, but I support from 640x480 to 1600x1200 (though rescaling of the 2D, though they're mostly 3D).
Allowing user-specified res and doing 3D at that res, while doing 2D art at 1024, allows the player's 3D to look as clear as he wants it, while the 2D "bitmap overlay" stuff (like HUDs and consoles) is scaled to the screen resolution. So, it looks kinda blocky below 1024, and especially at 640 due to downsampling (big surprise - *everything* looks blocky there, but at least it's supported and visible, if not crisp) and it looks no better than 1024 all the way up to 1600 (since it's just resampled to a higher res, but I *do* make it look good at 1024). However, the 3D stuff matches the selected resolution as chosen, and that's what's important for framerate and most "in-game" clarity.
So, right now, I'm *aiming* my games at 1024x768, but I support from 640x480 to 1600x1200 (though rescaling of the 2D, though they're mostly 3D).