I like clap's approach.
If you need a solution in a single SQL statement, you may like to try this. It ALMOST works... it will report single gaps beautifully. If you have a bigger gap, say 50 and 51, then this statement will report that as only a single gap. If that works for you, then great. If not, perhaps another forum reader can improve this for us.
select (g1.pkId + 1) as 'Gap!'
from gaps g1
Left JOIN gaps g2
on g1.Pkid + 1 = g2.PkId
where g2.PkId IS NULL and
g1.PkId <> (Select MAX(pkid) from gaps)
order by g1.PkId
bperry