There is no absolute, correct version of a language: there are dialects; and dialects with an army and navy.
There are a few of attendant issues with this:
1. Language varies, and varies considerably – an apocryphal example that I’ve heard is that when Trainspotting was shown in the US, parts of it were subtitled. Yet to me they were clearly speaking the same language (I’m from Edinburgh, where the film is set). Another (definitely true, I promise!) example of variability within language can be seen here. I understand this language (if we choose to call it that), although I never produce it.
Is Scots is a separate language from English, or is it an Anglic dialect? The answer is essentially political, as modern British RP must also, therefore, be an Anglic dialect if we are to argue that Scots is a dialect.
2. The primary driver for variability within a language is, in my opinion, social – the way we speak and write is arguably the single most important way through which we express our identity. For example, the way we speak when we are working is markedly different from the way we speak with our colleagues when we are in the pub with them. Compare this with the way we speak at home, or socialising with the people we grew up with. The question is, then (if we accept the Sapir-Whorf Hypothesis): Are we the same people at work as we are at home?
3. “Correct” varieties of language are the varieties of language spoken by the élite – those with either the money or power (arguably both are the same thing) to be considered as socially attractive, and therefore are in a position to impose linguistic norms.
I feel it follows from what I wrote above that “correct” English is a preference – how we want to be perceived, and why we want to be perceived that way.
Fundamentally, it’s a matter of taste.