i think this is what you are expecting as output:
Following query can be more simplyfy, you can do it with two date variables as well.
declare @StrtDt smalldatetime
declare @EndDt smalldatetime
DECLARE @WkStartDt smalldatetime
DECLARE @WkEndDt smalldatetime
DECLARE @Output TABLE (StartDate datetime, Enddate datetime )
set @EndDt = '2015-06-10'
SET @WkStartDt = '2015-04-15'
WHILE @WkStartDt <= @EndDt
BEGIN
SET @WkEndDt = dateadd(day, 0 - day(dateadd(month, 1 , @WkStartDt)), dateadd(month, 1 , @WkStartDt))
INSERT INTO @Output(startdate,enddate)
VALUES ( @WkStartDt, @WkEndDt)
SET @WkStartDt = DATEADD(day, 1, @WkEndDt)
End
select * from @Output
i hope this will help you
Thanks