This is a construction that is restricted to certain dialects of US English. In Standard English, it is not grammatical. (This construction is also often stigmatized, which means you would want to be especially careful before using it — you could be judged!)
However, this construction is used systematically in certain dialects of American English. To describe it clearly, I want to define a few linguistic terms I will use to sort out a crucial three-way distinction:
- grammatical: A usage is systematic and acceptable within a certain dialect, standard or not. (Often, "grammatical" is used outside of linguistics as shorthand for "used in Standard English". Note that the linguistic definition is broader than the layman's definition!)
- speech error: In contrast to grammatical statements, speech errors are random and unpredictable.
- standard: This usage is grammatical in a standard form of English.
People who use this "might could" construction are not making a speech error — within this dialect, it is grammatical. Informally, this is used throughout the southern US, but has not spread to any other region I am aware of. Interestingly, it so happens that the same construction is standard in German.
A description of how this works:
What is going on in "might could" constructions is a process called "modal stacking", where multiple modal verbs (e.g. "could", "should", "might", "would", etc.) can be stacked on top of each other. Each added modal verb contributes towards the overall meaning of the sentence. In Standard English, to convey the same meaning, we have to use another construction:
I might could do that. --> I might be able to do that.
We are doing effectively the same thing in standard English in terms of semantics, it's just that we have to change things around to get around a syntactic restriction.
These constructions are not redundant by definition (they are only redundant if you stack them redundantly!). Neither "I might do that" nor "I could do that" would have the same meaning as "I might could do that".
Other constructions include:
- I might should do that. (= "Maybe I should do that")
I might should do that. (= "Maybe I should do that")
- I used to could do that. (= "I used to be able to do that")
I used to could do that. (= "I used to be able to do that")
To sum up:
Modal stacking is not sloppy, meaningless, or redundant; linguistically, it is a systematic process (which I think is really cool!). It is just non-standard in English — something one would avoid using outside of this particular dialect group, especially because (like many features of Southern English) it carries a certain stigma outside of where it is used. But within that group, it is a productive and useful construction.
(This answer has been edited to clarify my use of "grammaticality".)