Q:

Snap during transform can not snap to what I want

Why can't I snap the point I chose to the target point. 
I tried for a long time to do this, but no use!
Could some help me? Thanks !

A:

Solution in object mode :

Add an empty
Set snap to vertex option
Grab your empty to the needed vertex of the mesh to be moved
Shift+RMB to select the mesh to be moved additionally to the empty
Then grab them both to the destination

A:

In case of complex objects Snap During Transform might not guess where should be the vertex you'd like to snap. If using Closest method while in Object mode, it will depend on object's bounds. If using that method in Edit mode, it will use nearest vertex to snap to.
To snap object's vertex (and whole mesh following it) to vertex of another object use Edit mode (without any joining). 
Enter Edit mode for object being snapped, select all and activate Snap During Transform:

To implicitly snap desired vertex and make mesh follow it use Active mode;
To snap the closest vertex to object being snapped to and make whole mesh follow snapped vertex use Closest method.

Note that depending on further actions with the object you might want to change its origin.

A:

Since @lemon's answer, in 2.8+, we have been able to drag the cursor around, opening another possible workflow, also without having to go into Edit Mode.
The 'Center' snap-from entry in the snap settings refers to the active Transform Center / Pivot Point, as set in the header dropdown. This can be the 3D Cursor. So, with the Transform Pivot Point set to 3D Cursor, snap-from set to 'Center', and snap-to set to 'Vertex', you can ShiftSpacebar - Spacebar activate the cursor tool.

Drag-snap the cursor to the desired source vertex
G Drag-snap the object, snapping where the cursor was at the beginning of the move, to the desired target vertex.

