If you want to use a recursion, return the function call, don't just call it.
if winGame(mines):
printWorld(gameMap)
print 'You Win!'
answer = raw_input('Would you like to play again?')
if answer == 'y':
return minesweeper()
else:
print 'Thanks for playing!'
return
This way, when one of your recursive functions ends, it returns None
to the previous one, which again returns None
to the previous one, etc. etc. until the last one calls return
which ends the whole recursion loop.
It might not be the best solution for this problem (take a look at MathieuW's answer, basically does the same) but it works for any situation, and is mostly used on recursive functions.