slim has a more positive connotation than thin.
thin can be used to describe an unhealthy look (if someone has lost weight due to illness, they look thin, or if on the verge of being emaciated, etc)
slim is used to describe when someone is thin and beautiful at the same time. ie skinny in a good way.
The difference really is whether you look healthy or not.
however, people use each interchangeably these days, so it really depends the way it's being said.
"Skinny" is usually used in more extreme cases. If someone is bony, I call them "skinny." Any higher amount of flesh will make me consider them "thin." Generally, "skinny" is not a compliment to most adults. If you want to compliment someone, call them "thin."
In other words:
when you look at a girl and can see collarbones and hipbones jutting out, you think "dang - she skinny!" - that's skinny.
when you look at a guy and it's apparent where his bones are but you can't actually *see* them, you think "he could use a cheeseburger" - that's thin.
when you look at a girl and can't really see bones but she's dimensionally petite and think "wish i was that small" - that's slim