Sensors are rules that tell the application agents what to instrument (i.e what data to collect within the application). So they capture method invocations, web requests, and things like that.
Monitors are like synthetic tests that can be run against any host regardless of whether it has an agent or not (they are completely independent of agents). Common monitors are URL monitors that just test if a web page is up and you can use this data in charts and incidents like any data that is returned from an agent. There many other monitors such as ones that can return host health metrics or even make a soap call. They are set to run on a schedule and can be configured within your system profile.
This page has a good summary of monitoring with and without agents (i.e. via monitors).