I see, yes you'll be using a temp table to do that and keep the values of the variables.
Personally i would propably do this thing somewhere else then the database but if you have to ..
Declare @Var1 Varchar(10), @mth varchar(6)
declare @MyValues table(
Variable nvarchar(8),
Value numeric(12,2))
insert into @MyValues(Variable, Value)
values('@M201304', 1000)
insert into @MyValues(Variable, Value)
values('@M201305', 2000)
Set @mth='201305'
select top 1 Value from @MyValues where Variable = ('@M'+@mth)