The Linux kernel makes effective use of free memory by using it as a
page cache. The output you get from "free" gives you a better breakdown of how your memory is being used, but the output is terse and some of the terms it uses can be confusing: "used" includes both memory that is being used by running processes and memory that is in use by the page cache. Pages are removed from the page cache if a running (or new) process needs more memory than is available in the "free" column, so it's nothing to get worried about.
I don't use Debian or System Monitor, but I assume it's reporting the information found in the "-/+ buffers/cache:" row. These numbers compensate for the page cache, and only show the amount of memory being used by running processes and the remaining amount of memory that can be requested by processes respectively.