Sounds like either your switch is broken or the vibrator its self.
Also you ma have the setting switched off go to settings>sounds> and make sure everything is flipped on
To add to Westerman's post, also see if the "New Text Message" has a ringtone assigned to it. Possibly if a ringtone is not assigned, the vibrate won't work in the silent mode?
Just a thought....I have no way of checking at the moment.