Dovrebbe essere una cosa del genere

codice:
select date_format(campo_data,"%M") as mese,
count(id) as telefonate,
sum(if(mail=1,1,0)) as flag_mail,
sum(if(sms=1,1,0)) as flag_sms
from tabella
where year(campo_data) = 2009
group by date_format(campo_data,"%Y%m")