This doesn't really add much value to Peter's version, but just for my own amusement:
DECLARE @MissingNumbers
TABLE (n INTEGER NOT NULL);
INSERT @MissingNumbers (n)
VALUES (1),(2),(4),(5),(7),(8),(11),(12),(13),(15),(17),(19),(20);
SELECT N.n
FROM dbo.Numbers((SELECT MAX(n) FROM @MissingNumbers)) N
EXCEPT SELECT n FROM @MissingNumbers;
(Using my previously posted function)
Paul White
SQLPerformance.com
SQLkiwi blog
@SQL_Kiwi