This is what I have tried but this won't handle multiple levels. Is this the recursion rabbit hole?
DECLARE @GroupCode varchar(20)
SET @GroupCode = 'A'
SELECT DISTINCT
Member
FROM
(
SELECT
Member
FROM Groups G
INNER JOIN GroupMembers GM
ON G.GroupCode = GM.GroupCode
WHERE
MemberType = 'Individual' AND
G.GroupCode = @GroupCode
UNION
SELECT
Member
FROM GroupMembers
WHERE
GroupCode IN
(
SELECT
Member
FROM GroupMembers
WHERE
MemberType = 'Group' AND
GroupCode = @GroupCode
)
) dataset