Q:

DateDiff Rows Where UserID is a match

On Sql Server 2012 (T-SQL), I would like to analyse the date difference between the end dates and start dates for the same userid, and to see if there is a equal or greater than twelve month gap between times. 
So for which ContractID the start date is =>12m than the previous end date.
ContractID   UserID    StartDate     EndDate      12m Lapse
     1         779     01/01/2000    01/01/2010     False
     2         779     01/01/2010    01/01/2015     False
     3         779     01/01/2016    NULL           True  
     4        1021     09/03/2008    NULL           False

Things perhaps to note are the userID is not in order on the real table, only the contractID is.

A:

Using a CTE and the LAG() window function it's quite easy:
Create sample data:
DECLARE @T as table
(
    ContractID int,
    UserID int,
    StartDate date,
    EndDate date
)

INSERT INTO @T VALUES
(1, 779, '01/01/2000', '01/01/2010'),
(2, 779, '01/01/2010', '01/01/2015'),
(3, 779, '01/01/2016', NULL),  
(4, 1021, '09/03/2008', NULL)

The query:
;WITH CTE AS 
(
    SELECT  ContractID,
            UserID,
            StartDate,
            EndDate,
            LAG(EndDate) OVER(PARTITION BY UserId ORDER BY StartDate) As PreviousEndDate
    FROM @T
)

SELECT  ContractID,
        UserID,
        StartDate,
        EndDate,
        CASE WHEN DATEDIFF(MONTH, ISNULL(PreviousEndDate, StartDate), StartDate) >= 12 THEN
            'True'
        ELSE
            'False'
        END As '12m Lapse'
FROM CTE

Results:
ContractID  UserID      StartDate  EndDate    12m Lapse
----------- ----------- ---------- ---------- ---------
1           779         2000-01-01 2010-01-01 False
2           779         2010-01-01 2015-01-01 False
3           779         2016-01-01 NULL       True
4           1021        2008-09-03 NULL       False

