Whatevery you do, do not buy those black awful things as suggested by some in this thread (like MaschinenZimmer). Yes, you will have a versatile shoe but its going to look ugly with everything. Buy one of the classic style of mens leather shoes in brown color and you will be thankful in the future. Here are some suggestions:
For formal, the number one choice is
oxford. This is what you wear with a suit. This is the only place where black might be useful, as its preferred in some conservative work environments and it can work with dark colored suits. Note that the flap of the shoe is inside the shoe, that is what differentiates an oxford from a derby:
For semi-formal / business casual, you have broad range of good options. This style can also cover anything from jeans+shirt to dress pants+jacket+pocket square. Here are some options from more formal to less formal:
Monkstraps/double monkstraps (defined by the straps, like the name says):
Brogues/longwings/semi-brogues (defined by the pattern of punchings):
Derbies (note the different design compared to oxfords, this makes them more casual):
Heres a good oxford vs. derby comparison:
http://www.loake.co.uk/blog/?p=559
Lastly,
chukkas have been suggested already. Theyre a good choice, but also the most casual out of all of these. Desert boots belong in this category.
For color, BUY BROWN! For business casual style its by far the best choice, as they are more versatile and stylish. IMO dark brown leather is the most versatile color you can have. Light and medium brown have more flash but that makes them also a bit less versatile IMO. For example with light brown shoes and dark pants the contrast is a bit too much.
For material, suede is generally more casual than full grain or top grain leather, but either can work for business casual. For soles, leather soles are the classic style but I personally prefer to buy rubber because the weather conditions here (Finland) make leather soles quite impractical and hazardous. But quality rubber soles are quite thick, and thus for some sleeker models they can be hard to find.
Lastly, buy good quality shoes and they will last you for much longer and they will also be much more comfortable for you to wear. Im not sure what is a good value brand in the US, but here in Europe my number one choice for decent shoes for relatively cheap is
Bexley. But their shoes are still around 140.