As Jacob suggests, you can look at backup history for an approximation.
Something like this will give you an average database size per month, which may be "good enough" for history. Set up a data capture going forward if you want better detail.
select
substring(a.database_name,1,30) as 'Database',
datepart(year,a.backup_start_date) as 'year',
datepart(month,a.backup_start_date) as 'month' ,
avg(cast((a.backup_size /1073741824) as decimal (9,2)))as 'Avg Gig'
FROM msdb.dbo.backupset a
join msdb.dbo.backupset b on a.server_name = b.server_name and a.database_name = b.database_name
WHERE a.type = 'D' and b.type = 'D' -- FULL Backup
and a.database_name = 'My_Database'
GROUP BY a.database_name, datepart(year,a.backup_start_date),datepart(month,a.backup_start_date)
order bya.database_name, datepart(year,a.backup_start_date) desc,datepart(month,a.backup_start_date) desc