How to make sure I have no sms virus? I'm using a non-rooted, non-hacked Samsung GT-I5700 device which runs Android 2.1.

Today I've received an MMS from an unknown phone with something which looked like a spam for Mastercard. I've immediately deleted this message, but it seems my phone has automatically sent this same MMS to one of my contacts.

According to the Messages app there was no other outgoing SMS/MMS to anyone else.

I've installed AVG from the Market and it said that my phone is clean. Still I would like to understand how this incident could happen since I haven't installed anything even remotely suspicious to my phone and didn't even browse the internet except for using Google Translate and Google Maps from time to time.

I'd like to know if it is possible for an app to delete or modify the history of sent messages. Can it clean up its tracks? Can it be possible that my phone has sent more than one SMS to my contacts only they aren't visible somehow?

I'd also like to know if it is possible to somehow deny outgoing phone calls and messages to apps so this could never happen again.
I doubt that something like an SMS/MMS Virus exists or is "in the wild".

If this MMS was really originating from your phone, than this could only be caused by an malicious App. Now, there are two ways how any App can send/receive SMS/MMS:

By having the appropriate permissions

You can easily find out which App has requested, and since you installed it, granted, which permissions that App got granted. See this question for tools.

By exploiting the Android System

If there is an root exploit within the Android System and within the Dalvik VM, any App could use it to do anything. AFAIK as of Android 2.3.5 there are no public known exploits. Not sure what's the state in case of Android 2.1

SMS history

Editing the SMS history is not necessary. The history is part of the (stock) SMS client. If an Android App uses to API to send an SMS/MMS the history is not involved.