I'm pretty confused by the multitude of frameworks to choose from: I would like to be cross platform, possible even try to make an application for my mobile phone. Probably a game, but could be something else.
Thank you
AFAIK, WinPhone7 will only support XNA, i.e. the CF subset of the .NET class libraries, plus the XNA graphics/audio/input/etc APIs.
Tao and OpenTK are both bindings to OpenGL, etc. They can be used on .NET or Mono, but only on platforms where OpenGL etc. exist. OpenTK is basically a nicer version of Tao - you wouldn't use both.
The key to portability is to do as all big games engines do - abstract out the audio and video renderers, and the input system. This renderer object would take your scene graph and render it to the screen using the platform's APIs. So on WinPhone and Xbox you could use XnaRenderer; on Windows you could use XnaRenderer, OpenTKRenderer or DirectXRenderer; on Linux, Mac, iPhone (via MonoTouch), Android (via MonoDroid) you coudl use OpenTkRenderer.
You might want to look at the open-source C# Axiom3d graphics engine, which already does this.