Cases do not strictly have to cause declension or agreement in other parts of the sentence. Though that is extremely common, of course. They are not prepositions because they are not free morphs. They must attach to the word they modify, whereas prepositions might be able to move around the sentence. They are a completely different POS (part of speech), despite the fact that they do serve very similar purposes. They go about those purposes in different ways; they behave differently.
Because of the fact that they are bound morphs, that means that they are subject to assimilation at morpheme boundaries. That means that to the untrained eye, the case might seem to disappear entirely. Example: puällä+jat = puällåät (argument+ADVERBIAL = argumentatively). They can also cause the root to which they attach to change as well. Example: tei+hõl = tõhõl (you+DATIVE = for you). Prepositions will never do either of these things because…
If I’m not mistaken, prepositions are particles (or at the very least, they’re very particle-like) which essentially means that they cannot be inflected (again untrue of Duojjin’s cases, which themselves can become cased, and further derived into verbs). It means other stuff too, but that’s a major enough point to discredit the idea that they’re really postpositions (which, of course, play by the same rules as other adpositions).
Furthermore, languages that use case will generally require that more or less every noun must be marked for case in some way or another. You will never find (ANADEW me if I’m wrong, please) a language that demands that every noun be obligatorily paired with an adposition. That would be silly.
And the main reason for that silliness would be because case generally covers more purposes than adpositions, which means that case is going to be needed in more places than prepositions. The most obvious being the core cases like nominative, accusative, and dative. You’ll never find a preposition that marks for these things because there is no “position” here. Well, you will for dative, I guess. 😛 Is the argument denoted by the dative case even a core argument? Whatever. That’s not important now.
Because of all this, there’s a pretty good test to determine whether a case is a case. After you’ve applied it to a word… is it still in need of a case before it can be a legal word? If the answer is “yes”, then it’s not a case; it’s some other kind of morphological thing. Perhaps even a postposition! :O But if the answer is “no”, then you’ve obviously met the obligation of having at least one case applied to the word, indicating that it is, in fact, a case.
Another (perhaps lesser) point of interest is that prepositions tend to (as far as I’m aware) have far more different purposes per item. Like, any one preposition is likely to serve many more different functions within its language than any one case is likely to serve within its.
I recall that roughly (quite roughly) half of the world’s languages use case, and that also roughly half of the world’s languages don’t have grammatical agreement. There’s pretty much statistically bound to be overlap to be found between those two details.
I’m sure there are more differences that one could come up with between case and adpositions, but I think that these will do for now. 😛