when you cancel the event in ItemAdding Handler, like:
public override void ItemAdding(SPItemEventProperties properties)
{
SPUtility.SendEmail(properties.OpenWeb(), true, true, to, subject, body); properties.Cancel = true;
}
you will get 2 email messages.
Other senario that list events fire more than once, largely becuase the event handlers are registered more than once. Use SPM to find out, and write code to un-regisgter. http://blogs.msdn.com/b/ketaanhs/archive/2008/04/01/how-to-un-register-an-event-handler-on-a-list-sharepoint-2007-moss.aspx