Try one of these. I think you want the second one
For Monthly Averages
Select Month(`date`), avg(`duration`) AS 'Daily Duration'
from Table
where `date` between '2009-01-01' and '2009-12-31'
group by Month(`date`)
For Daily averages
Select Month(`date`), Day(`date`), avg(`duration`) AS 'Daily Duration'
from Table
where `date` between '2009-01-01' and '2009-12-31'
group by Month(`date`), Day(`date`)