Is a wallet just a collection of private and public keys? There is a fundamental bitcoin concept I don't get. Am I correct in that all I "need" to send and receive money are a single address and its associated private key? 

In other words, can't I just create an address and private key and print them off and store it in my desk? And in this case, if I print two adresses and private keys, couldn't my physical desk be considered a "wallet"?

I'm just trying to figure out what a wallet is specifically. Is this just some sort of file or folder that stores those private and public keys?

Thanks!
A wallet can be as simple as just a private key by itself even as software that has access to that can derive the public address from it.  So yes, that data alone can be considered a bitcoin wallet.

But you asked if that is all you need to send and receive so for that you will need software that uses the private key to spend the funds.  Sometimes the term "wallet" is used to refer not to just the data stored but transaction data as well, along with the software that can create transactions and do the accounting for them as well so that you can know your balance.

Proper vocabulary would describe wallet software as being a bitcoin client.  The bitcoin client from Bitcoin.org (also referred to as the "Satoshi" client) does this, and has a local wallet as well.

My Wallet from http://BlockChain.info/wallet is managed through a server, but the wallet itself is stored in your browser.  That type of wallet and client is termed a Javascript-based wallet.  Sometimes the term "hybrid wallet" is used, since to spend using My Wallet you need to use their hosted service where the transaction gets processed.

Another type of wallet is an e-wallet where the wallet data is stored by the service's operator.  An e-wallet can also be referred to as a "hosted wallet".  InstaWallet is one of these.  The just-launched Paytunia is another.  An account at an exchange which hold bitcoins for you is another type of e-wallet service.  Using a hosted wallet incurs risks involving trust extended to the wallet's operator.

But the simplest form of a wallet comes from http://BitAddress.org

It gives exactly what you describe -- a private key and a public address.  This happens to provide one of the most secure wallets as well.  The html source can be copied to a thumb drive and then used to create paper wallets from an "air gapped" system (such as a computer running a secure operating system perhaps using a LiveCD linux distribution) that has no connection to the network and is used for printing out paper wallets.