How about Gardevoir? Especially if you don't already have a mega Pokemon. Gardevoir has really good Special Defence (even better in its mega form), as well as good Special Attack. You will need to keep it away from physical attacks, though, as its Defence is pretty bad.
Claydol is another option, and can be useful for setting up Stealth Rocks if you don't already have someone for that. Aside from that it is probably best as a dual screener, and its Levitate ability allows it to switch into predicted Earthquakes easily.
3rd Gen doesn't really have many good walls. Wailord and Whiscash are other options, but most of their stats are fairly mediocre, so you probably don't want to rely on them. Ludicolo can be good in the rain, thanks to Rain Dish, and Walrein can do the same thing in Hail, thanks to Ice Body, but outside of those weather conditions, they can do little to be of use.
By the way, for a question like this, knowing the rest of your team would help ...
Anyway, I hope this was somewhat helpful to you.
EDIT: Actually I just though about someone else. Have you considered Eviolite Dusclops? That thing can definitely take some hits.