The reserve column is a varchar, to perform sums on it I want to cast it to a deciaml. But the SQL below gives me an error
select
cast(Reserve as decimal)
fr
IsNumeric is possibly not ideal in your scenario as from the highlighted Note on this MSDN page it says "ISNUMERIC returns 1 for some characters that are not numbers, such as plus (+), minus (-), and valid currency symbols such as the dollar sign ($)."
Also there is a nice article here which further discusses ISNUMERIC.