Isso lhe dará o último mês:
WHERE dateColumn BETWEEN SUBDATE(CURDATE(), INTERVAL 1 MONTH) AND NOW();
Isso desde o início do mês:
WHERE dateColumn BETWEEN STR_TO_DATE('2012-09-01', '%Y-%m-%d') AND NOW();
O ENTRE não é nada de especial, é apenas um atalho para
dateColumn <= ... AND dateColumn >= ....
Hmm, acho que a comparação NOW() não é realmente necessária, já que todos os registros serão antes de agora.
Então é só fazer:
WHERE dateColumn >= STR_TO_DATE('2012-09-01', '%Y-%m-%d')
Início dinâmico do mês atual:
WHERE dateColumn >= CURDATE() - INTERVAL DAY(CURDATE())-1 DAY
Tudo o que isso faz é extrair o dia do mês da data atual e subtrair tantos dias menos um dele.