Neither answer is correct and I believe this situation is impossible. See the explanation below.
Your answer corresponds to the number of possible unique games that could be played if every game were three-sided. In other words, 7C3 is the number of 3-team groups that could be created from a 7-team league; it has nothing to do with the number of games that might be played.
Your friend's solution corresponds to the number of ways you could have a first, second, and third place team after the season has ended. There are 7 teams that could get first place, 6 remaining teams for second place, and 5 teams remaining that could get third place; hence 7*6*5.
If each of 7 teams played 3 times, that would be a total of 21 games (7*3) if they didn't play each other. I believe your question intends for the teams to play each other. In this case, we would divide by 2 (since team 1 playing team 2 would be a single game, not two games). Therefore we have 21/2=10.5 games, which is clearly impossible.
A couple clarifying examples: if we have 4 teams that each play 2 games, one possible schedule could be 1v2, 1v3, 2v4, 3v4. Each team plays twice and there are 4*2/2=4 games total.
Another impossible scenario might be 5 teams playing 3 games each. An attempt at a schedule might be 1v2, 1v3, 1v4, 2v3, 2v4, 3v5, 4v5, with team 5 missing out on a game while all other teams have already played 3 games.
Thus it the only possible schedules would occur when the product of the number of teams and the number of games each team plays is even; so either the number of teams or the number of games played must be even (or both).