There is a formality distinction between so and very. Using so connotes a degree of familiarity, warmth, surprise, exclaim, and/or incredibility that isn't necessarily present with very.
For example, to say "He is very old." is to note that the person is older than the age that comes to mind then one thinks of old. The word very is generally a neutral intensifier.
However, one would exclaim "She's so old!" if they had just learned the subject's age and was surprised by the answer, or to underscore the subject's advanced age. This would be said in an informal setting, e.g. with friends, and not normally in formal settings, e.g. in writing, to people of authority, or at a black-tie event.
In your other example: I'm very sorry. and I'm so sorry! have similar meanings but differ in formality. One would use the former to express condolences at the funeral of an acquaintance; the latter I use when telling a friend I am running late.
Let's try some minimal pairs:
I walk rather than run
I walk instead of running
I eat apples rather than oranges
I eat apples instead of oranges
I walk quickly instead of quietly
I walk quickly rather than quietly
I don't really think there's much of a difference, except perhaps rather than
implies preference whereas instead of
implies substitution. But that might be nitpicking. And it doesn't seem to apply when using it to coordinate adverbs (last pair).
Also, there's a slight difference in the verb forms in the first pair, but there's not really a difference in meaning there.
Best Answer
It depends on whether you're talking about formal or informal English.
In formal English, "so" or "very" are neutral, and "too" is negative. All three terms mean that the noun has a lot of the quality under discussion, but "too" also means that having so much is a problem.
To make things more confusing, in informal English, "too" can be used in a positive sense, as hyperbole. So ordinarily, if you say something is "too cute," it means you're criticizing its aesthetics. But if you say, "Oh, my God! That's too cute! I love it!" it just means "very cute."
To sum up:
means you approve of it.
means the same thing but is informal and would only be used in some English dialects. On the other hand:
means that you disapprove of the picture's sexiness.
How can you tell which one the speaker means? Only through context. When in doubt, though, avoid using "too" in this sense unless you disapprove.