Like others who've posted answers here, I tend to leave out languages I have not worked with in a long time or have an extreme distaste for. Ironically, sometimes you end up having to work with them again (curse you, Java!), but I'd rather not be hired on the premise of developing in such environments exclusively. Obviously, I'd rather keep my CV short and sweet, and be hired for something that I'm already good at doing.
Also, I should note that I'm highly unlikely to submit my CV to a large company using automated document scanning to search for applicants by keywords. At this point in my career, I have settled into a fairly niche industry, and most of the companies in my field are smaller and will use a lot of human contact during the hiring process. As such, they're more interested in seeing "the meat" in a CV, not a huge list of buzzwords.
But as far as actual jobs or application development goes, you shouldn't omit anything. I'm not sure if this is the norm in all countries, but at least in some parts of Europe, it's considered highly suspicious to leave any time gaps in your CV/resumé. So even if you are unemployed during a period of time, you are expected to note as such. That said, the less-than-glorious jobs that I've worked over the years never get eliminated from my CV, but rather, every time I need to add something else, I edit down some of the older jobs or project descriptions on there.