iPhone 3GS keeps vibrating at random times
When I worked at the Apple Store we had 3G and 3GS models come in every so often where their iPhone would vibrate without cause, sometimes the problem could be recreated by squeezing the top left hand corner (Pressing in on the front and back of the case) of the phone. As shown in this video:

http://www.youtube.com/watch?v=9zs17LV2SAM

It doesn't always show the vibrate on off icon when it happens. 

We noticed it happened more with people who had 3G and 3GS phones that were older.  It is a common enough issue that if you google search iPhone 3g vibrating randomly, you'll get quite a few hits.

When we had this issue, it was usually the vibrate motor going bad or having issues, a lot of time it was because people dropped their iPhones a lot and we could tell because the corners we scratched up, but it wasn't always the case. If you are under warranty, they will replace it.  If not, they can replace your iPhone for a price, usually 200 dollars. There was no software fix available from Apple.  We just had to simply repair the iPhone.  Restoring/Updating the iPhone didn't help either. It was purely a hardware issue.  There might be guides on replacing the motors in the device since it is easy to open up the devices but do that on your on discretion if its possible.

Personally, I would just hold off until a new iPhone comes out and just buy it if you want to.  Unless the issue gets to the point to where it is constantly vibrating for minutes at a time, which I have also seen happen during my time at Apple, then see if you can get them to replace it. It vibrating every once in a while won't cause issues but it vibrating constantly can deplete battery life quicker than normal.  

Now, it could also be an app that is just updating its badge and your not realizing it. Every time I have seen it though it was because of the vibration motor.

I hope that this information helps you out.