Answer:
You should use "should have" instead of "should of". "Should of" is just the lazy man's term for "should have" because people were to lazy to say the entire phrase. People tried to say "should have" faster to say what they want to say faster, so the slurring of the words in the phrase "should have" eventually became the commonly used phrase "should of". "Should of" is one of the most common forms of improper English grammar and should not be used.
If it's just for an e-mail or something then do "should of." If it's for an essay, homework, report, or anything that will be somehow graded I suggest that you use "should have" "I should of done this" "I should have done this" It's a matter of what you think. Using "have" sounds just a little more proper than "of."
It is also likely that the proper "should have" became a contraction to "should've" and people just assumed it was "should of". To determine what is the proper way, look at this. "I have gone to the store many times." and "I of gone to the store many times." One of those makes sense. The other doesn't. And placing "should" in its place in the first sentence still makes sense.