As I understand it, the 'Surface' platform is built on top of touch events. For example, You can code standard WPF components for Touch interaction yourself, as a subset of the usual .NET components support touch events. Or, you can use the Surface controls instead which generally have done alot of the work for you in handling interactions like dragging, pinching, and so on.
Touch is a tricky mechanism to get right from a user POV, so I'd say start with the already available Surface library if you want to get started in this area.