I've created a small demo showing how to utilize NetTopologySuite in SharpMap. The great thing about NetTopologySuite is that is has a bunch of geoprocessing methods that SharpMap doesn't have (yet anyway). The demo uses the NetTopologySuite library for the following:
- Apply some geoprocessing to the geometries (in this case it puts a buffer on all rivers) 
- Uses NTS for making exact intersection queries. By clicking on an object the buffered feature(s) are highlighted and attribute data shown beneath.
The basics are:
Create a NTS datasource based on another datasource which takes a delegate to apply to all geometries:
NtsProvider
 ntsDataSource = new NtsProvider(myShapeFileDatasource, CreateBuffers);
Create the geometry-operation delegate method which should be applied to all features:
private
 void CreateBuffers(List<GisSharpBlog.NetTopologySuite.Features.Feature> features)
{
   foreach (GisSharpBlog.NetTopologySuite.Features.Feature feature in features)
   feature.Geometry = feature.Geometry.Buffer(0.5);
}
The 'ntsDataSource' object can then be assigned as datasource to a vectorlayer.
Clicking and highlighting features are done by reacting to a click-event on an ImageButton (in ASP.NET) or a PictureBox (in Windows.Forms).
protected
 void imgMap_Click(object sender, ImageClickEventArgs e)
{
   //Convert click-point in image coordinates to world coordinates
   Point ClickPnt = myMap.ImageToWorld(new System.Drawing.Point(e.X, e.Y));
   SharpMap.Data.FeatureDataSet ds = new SharpMap.Data.FeatureDataSet();
   //Execute click-query on first layer in layers collection
   (myMap.Layers[0] as SharpMap.Layers.VectorLayer).DataSource.ExecuteIntersectionQuery(ClickPnt, ds);
   if (ds.Tables.Count > 0) //We have a result
   {
      //Add clicked features to a new selection layer
      SharpMap.Layers.VectorLayer laySelected = new SharpMap.Layers.VectorLayer("Selection");
      laySelected.DataSource = new GeometryProvider(ds.Tables[0]);
      laySelected.Style.Fill = new System.Drawing.SolidBrush(System.Drawing.Color.Yellow);
      myMap.Layers.Add(laySelected);
   }
   //Call method that renders a new map and displays it to the user
   GenerateMap();
}
 
Download NetTopologySuite_Demo.zip (544,32 KB)