I'll try a different way of looking at it...
n players, group size is g, r is the number of rounds. If we keep to a simple case where g divides into n exactly:
In any particular group each player effectively plays (g - 1) individual matches. So r(g - 1) matches in total. If you want each player to play each other exactly the same number of times, then we need r(g - 1) to be a multiple of (n - 1).
So, r = LCM(n - 1, g - 1)/(g - 1)
(This doesn't prove a solution exists, it just gives a way of eliminating some that definitely won't).
So with 8 players in 2 foursomes, we need 3r to be a multiple of 7. The minimum value of r that will do that is 7 - which matches your solution.
With 9 players we'd have to play threesomes. 2r is a multiple of 8. Which suggests you can do it in four rounds, with everyone playing each other once (and a little hand-calculation shows this is possible). Or you can have 8 rounds, 12 rounds, etc.
If you have a group size that doesn't divide the total number - I might have a go at that later!