Eu acho que pela pergunta você está atrás do próximo disponível, embora isso possa não ser o mesmo que max+1 certo? - Nesse caso:
Comece com uma lista de inteiros e procure aqueles que não estão na coluna groupid, por exemplo:
;WITH CTE_Numbers AS (
SELECT n = 2001
UNION ALL
SELECT n + 1 FROM CTE_Numbers WHERE n < 4000
)
SELECT top 1 n
FROM CTE_Numbers num
WHERE NOT EXISTS (SELECT 1 FROM MyTable tab WHERE num.n = tab.groupid)
ORDER BY n
Nota:você precisa ajustar o
2001/4000
valores no CTE para permitir o intervalo desejado. Eu assumi o nome da sua tabela por MyTable