dslink is a simple and effective method to transfer homebrew games and applications to your DS(i) over wifi. Simply run dslink.nds on your DS console, wait for it to connect and use the command line dslink host tool to send an nds file.
dslink [-a ip address] <ndsfile>
The dslink host uses UDP broadcast messages to discover your DS but this won't work for some people due to routers either not passing on these packets or sending them at a speed the DS can't read. If you get "No Response from DS!" then try specifiying the ip address of your DS with the -a switch.
Here's the part most people will probably be interested in, homebrew running in DSi mode.
While playing around with the save game exploits for Cooking Coach and Classic Word Games I created last year I discovered two things about the flashchip on the wifi module where the firmware would be stored on a normal DS. (1) It contains only the setup data for wifi, the user settings and the wifi connection settings and, (2) Part of it is writable, from DS mode. This was what finally gave me the motivation to revisit an old project to upload homebrew to the DS over wifi.
installDSiLink.nds will, when run from a DSi compatible card in DS mode, write the dslink client to the wifi flash chip and this can then be bootstrapped from the save game exploits mentioned above. You'll need to write the appropriate .SAV file from this archive to your game of choice from either a DS with eepinator or use one of the save game transfer devices around. Cooking Coach is more convenient since the exploit kicks in just after the splash screen, with Classic Word Games you need to go through a couple of menu options.
Unfortunately testing revealed that later model DSi and XL consoles have had their security beefed up a little. You'll know if you have one of these consoles if either the installer fails to write the loader or the loader fails to connect when bootstrapped. Sorry if you have one of these consoles, you'll have to wait a little bit longer to play with DSi mode.
libnds still needs some more updating to deal with DSi mode features, currently audio and touchscreen don't work and the swi decompression functions seem to have changed. Hopefully now there's a reasonably straightforward way to run code we can get a few more people looking at what we need to change and how best to approach it.