The answer to the who Cain married is likely found in the next chapter:
After the birth of Seth, Adam lived 800 years and begot sons and daughters.—Genesis 5:4 (NJPS)
In other words, Cain probably married one of his younger sisters. If not, he could have married a niece: a daughter of Seth or one of his other brothers. Of course, that changes the question to: "Who did Seth marry?" And his wife would still have been a close relative.
But isn't that a sin?
Since the law of Moses was handed down many years later, it wasn't a sin. God hadn't given the commandment yet! In fact Abraham married his sister:
Then Abimelech summoned Abraham and said to him, “What have you done to us? What wrong have I done that you should bring so great a guilt upon me and my kingdom? You have done to me things that ought not to be done. What, then,” Abimelech demanded of Abraham, “was your purpose in doing this thing?” “I thought,” said Abraham, “surely there is no fear of God in this place, and they will kill me because of my wife. And besides, she is in truth my sister, my father’s daughter though not my mother’s; and she became my wife. So when God made me wander from my father’s house, I said to her, ‘Let this be the kindness that you shall do me: whatever place we come to, say there of me: He is my brother.’”— Genesis 20:9-13 (NJPS)
There is an almost universal taboo against marrying a sister—perhaps because of the genetic problems this can cause with the offspring. Marrying a sibling must have been unusual: Abimelech didn't expect Abraham to be married to his sister. However, in the context of Genesis, it seems not to have been sinful. Isaac and Jacob both married close relatives. None of these men were called to account for these actions. God even blessed these unions.