Hi, everybody. I've been studying C# (using Visual C# 2008 Express) for several months and I think I've got the basics down pretty well at this point, so now I want to create a moderately ambitious application to consolidate and grow my skills. Any suggestions for what kind of app would utilize the full set of skills that would be expected from a preprofessional level student?

I am somewhat in the same position as you, I started about a year ago. Do ANYTHING you can imagine and that you would like to accomplish. I made a console calculator(look in the code snippets) and I also did a calculator that looks a bit like the one we all know but with special buttons. You could do a sudoku solver, I still like to do a game like MasterMind or Tetris. Those games exist that is not the point, I find it fun to do it my way. I made a little sql database with info and pictures from my friends. (It worked , currently the DB is corrupted, too much experiments on my part?)
It is hard to choose for someone else. Get yourself a goal and try to accomplish it, succes!

start creating custom components and improve component based programming then publish your components in here so we can later enhance them. i usually post all the components i create(not the commercial ones though).
you can start by creating derived buttons or textboxes. it is really entertaining dude. when i was an asp.net developer, my favorite hobby was developing asp.net toolbox items which encapsulated javascript for the most time.

A good start would be something you need. I created a slew of tools that would help me in my every day endeavors, examples, a notepad clone tailored to my everyday needs including a dozen text sorting functions, a url escape sequence translator to help me download things from the net, a custom download manager for downloading any type of file from a path, a simple system tray mp3 player to keep my workspace clean, an xml based todo list app that logs dates that I complete certain objectives and shows me a productivity report when I need to know how well I am spending my time.

There is no standard for a moderate difficulty project. Some things an ambitious project would include would be:

some custom drawn controls.
using custom event handlers.
saving data in XML or a DB.
networking support.
and if really ambitious skin support, and docking to screen edges.

you shouldn't write a needless program. There is too much crap ware already out there, Thats why I learned to program. So I could create software I needed instead of spending hours searching for software that won't really do what I need.

So ask yourself as a computer enthusiast, what do you need a program to do?

Here are some considerations if you intend to market your skills with prospective employers:
- find out what the employers in your area are developing
- check out freelance development sites to see what kinds of consulting contracts are in high demand
- do the same with job posting websites

Other considerations:
- import/export data to existing popular applications
- design/refine your objects so the functionality can be plugged into multiple interfaces with ease