One of the things that SharpMap at the current stage lacks most is probably a relation model, making for instance intersectiontests possible (unless you use the PostGIS provider which uses its built-in relation model). This is important to be able to select features within a certain distance, which features intersects the point that was clicked on the map or features that intersect other features. At the current stage most intersection-tests are only done on bounding-box level, which - although very fast - isn't very precise.
NetTopologySuite is another great .NET library that among other does a lot of the things that SharpMap not (yet) can do. Fortunately Diego from the NTS team has made a link between NTS and SharpMap making this possible. They have posted an example on the NTS website showing how to check for exact intersection in SharpMap. Check it out. It is very cool and very powerful.