try this
DECLARE @subscriptionstartdate DATETIME,
@subscriptionenddate DATETIME
SET @subscriptionstartdate = '20100101'
SET @subscriptionenddate = '20101231'
;WITH
L0 AS (SELECT 1 AS C UNION ALL SELECT 1)
,L1 AS (SELECT 1 AS C FROM L0 AS A, L0 AS B)
,L2 AS (SELECT 1 AS C FROM L1 AS A, L1 AS B)
,L3 AS (SELECT 1 AS C FROM L2 AS A, L2 AS B)
,Nums AS (SELECT row_number() OVER (ORDER BY (SELECT 0)) -1 AS N FROM L2)
SELECT DATENAME(MONTH,DATEADD(MONTH,n,@subscriptionstartdate)) AS MnthName
FROM Nums
WHERE N<=256 AND DATEADD(DAY,DATEDIFF(DAY,0,DATEADD(MONTH,n,@subscriptionstartdate)),0) <= @subscriptionenddate
GO