copy pasted from the very reputable urban dictionary:
catty: If one is being catty, they are being subtly or indirectly insulting. Different from b*tchy in that b*tchiness is just mean, while cattiness is often clever and witty, and isn't ALWAYS completely mean (for example, a catty joke). Both males and females can be and are catty.
b*tchy: An adjective that's supposed to be used to describe someone irritable, moody and whiny. Even if a person is not b*tchy but rather, honest or blunt, a st*pid person may use "b*tchy" to describe that person. B*tchy is the creative limit when it comes to insults coming from the same st*pid people.