kml is used by Google Earth to show all sorts of things within that programme.
QGIS uses the GDAL driver for kml or libkml which allow to import and export basic geometries:
http://www.gdal.org/ogr/drv_kml.html
http://www.gdal.org/ogr/drv_libkml.html
Unfortunately, not all possibilites can be translated, especially not layers with mixed geometry type (point and line or line and polygon).
It might help to load the data into Google Earth, and separate the geometry types, if possible.
There are kml files too which work as a wrapper around some internet url's. These can not be understood by the GDAL driver.