Create a "base" db with the schema, tables, etc. that you need.
When you need to create a new db, restore a backup of that db to the new db name you want.
As to the old base db changing, easiest is likely to just back it up every 30 mins (or on whatever schedule) overwriting the previous backup file. The backup will always have a reasonably recent version of the base, and naturally you can do the backup on demand any time you want. I personally would never try to maintain scripts for this because that's such a pain to keep accurate.
SQL DBA,SQL Server MVP(07, 08, 09) Prosecutor James Blackburn, in closing argument in the Fatal Vision murders trial: "If in the future, you should cry a tear, cry one for them [the murder victims]. If in the future, you should say a prayer, say one for them. And if in the future, you should light a candle, light one for them."