Appears to be some terminology confusion, which might explain things.
You can think of screen as a "window manager". You can open many windows open in one instance of screen. When you do ctrl-a c then you open a new window, when you do ctrl-a K then you close a window. (NOTE: exiting the shell you open in the window will also close the window). You can see what windows you have open with ctrl-a w. For example, I have these windows open
Code:
0 spam 1 news 2 ksh 3* ksh 4- ksh 5 ksh 6 daffy
Closing a window does not stop the screen session; screen will die automatically when the last window it manages closes.
Now you can also have multiple instances of screen running at the same time. This is what you see when you run "screen -ls"; all the different screen instances.
From here you can see that ctrl-a K will not close screen down, unless you kill the last window inside a screen session.
So, if you have a number of detached screen sessions on the machine you can attach to one of them ("screen -r") and then see the windows it manages (ctrl-a w). You can then switch between the windows (ctrl-a 0 through ctrl-a 9) and close each window. When you close the last window then that screen instance will shutdown. You can then move onto the next detached session (if any) and tidy that up.
Finally, screen can get confused (normally this is due to a reboot or crash or bug) and leave things behind that it lists as detached, but without any screen session running. That can lead to the "no session" errors. These can be cleaned up, as others have mentioned, with the "-wipe" option.