One thing that Nitschke wrote was that you shouldn't use foreach contruct when developing in C# as it is really slow due to an error in the XBox 360 Garbage Collector. Instead of the Draw routine that was previously posted, should probably use something like this...

[pascal]
method TTutorial3.Draw( gameTime : Gametime );
var
transforms : array of Matrix;
mesh : ModelMesh;
effect : BasicEffect;
i, x : integer;
begin
graphics.GraphicsDevice.Clear( Color.CornflowerBlue );

//Copy any parent transforms
transforms := new Matrix[ myModel.Bones.Count ];
myModel.CopyAbsoluteBoneTransformsTo( transforms );

//Draw the model, a model can have multiple meshes, so loop
// use normal for loop rather than for each as it is faster.
for i := 0 to myModel.Meshes.Count - 1 do
begin
mesh := myModel.Meshes[ i ];
//This is where the mesh orientation is set, as well as our camera and projection
for x := 0 to mesh.Effects.Count - 1 do
begin
effect := BasicEffect( mesh.Effects[ x ] );
effect.EnableDefaultLighting;
effect.World := transforms[ mesh.ParentBone.Index ] * Matrix.CreateRotationY( modelRotation ) * Matrix.CreateTranslation( modelPosition );
effect.View := Matrix.CreateLookAt( cameraPosition, Vector3.Zero, Vector3.Up );
effect.Projection := Matrix.CreatePerspectiveFieldOfView( MathHelper.ToRadians( 45.0 ), aspectRatio, 1.0, 10000.0 );
end;

//Draw the mesh, will use the effects set above.
mesh.Draw( );
end;

inherited Draw( gameTime );
end;
[/pascal]