Another thing you can do is to make a game of feeding: you feed me, and I'll feed you. We (DH, DS and I) started with one rice crispy at a time, dramatically showing how to chew it up in our mouths and exaggerating the delight we took in each little morsel. With other solids, we started with really tiny bites, again exaggerating the chewing motions and our enjoyment. I usually tried to offer 3 different textures at each meal: crunchy, gooey, and soft solid (such as pasta). If DS took at least one taste of each, the meal was a success and he got plenty of positive feedback. Also involving the child in the grocery store trip makes a big difference at meal time. One time DS insisted that I buy him a lime, and then had me cut it up for him as soon as we got home -- he was surprised at the taste!
Over time, these tiny steps have really added up. DS no longer gags on his food and eats an incredibly wide variety of foods.
"Isn't life a series of images that change as they repeat themselves?" - Andy Warhol