Your core issue is that each pair does not have a unique id. If they did, this would be a lot easier. As it is, you need to just order by dates.
select id, eventtypeid, eventtype, ScheduledCompletion, EventTypeDes,
datediff(day,
lag(ScheduledCompletion, 1, getdate()) over (order by ScheduledCompletion), ScheduledCompletion) as Gap
from tblTest
will work in SS2012. You can add a case statement to not return a value for the 'match' rows. It would be much neater if you had a sane DB structure then it could easily be done with CTEs, and for SS2008 or 2005. It could still be done for 2005 or 2008 but I don't want to do any more until I know which one you're using, and why your DB structure is broken.
Here it is for SS 2008
with tbl as
(
select row_number() over (order by scheduledcompletion) as r, id, eventtypeid, eventtype, scheduledcompletion, eventtypedes from tbltest
)
select r1.id, r1.eventtypeid, r1.eventtype, r1.scheduledcompletion, r1.eventtypedes,
case when r1.eventtype = 11 then '' else
convert(varchar(5),
datediff(day,
r2.ScheduledCompletion, r1.ScheduledCompletion)) end as Gap
from tbl r1 left join tbl r2 on r1.r = r2.r+1