Lately I've been working on my own 3D engine from scratch with the aim at making a little Tower-Defence game (as known from Warcraft 3). It is implemented in C# using the OpenTK framework that wraps OpenGL.
The reason why I'm using OpenGL is because I started the project in Mono on Linux. XNA would probably be a more obvious choice, but then I get the fun of implementing all the interesting features myself and really practice my software architecture skills :)
The engine is very object oriented and makes it quite easy to make something work quickly. It is built around a layer-system where the developer can put any object in different layers that defines the drawing order on the screen. While it is a neat way of handling 3D/interface separation it can be used to get higher framerates as well.