The easiest way I find to conceptualise the filtered index is an index with a constraint upon it, which only allows certain values into the index.
If your query is asking for values which all fall within the constraint then the engine knows it can use the filtered index instead of reverting to another index / underlying table. If you ask for values outside of the constraint, the filtered index will not be used.
In terms of how it makes your system faster, the index can be very targetted and will occupy less pages overall than an equivalent NC index on the same values. this basically gives you less I/O and results in a speed increase. Even index seeking the Filtered index, you are more likely to get a page cache hit for the index, since the filtered index is only including rows that you were interested in (in theory) due to the constraint.
If your data distributions and queries do not follow defined usage patterns it will be harder to make these work for you, but in scenarios where you have lots of null values which you are never interested in, then the filtered index can be set up to only include non-null values for example.