Things like [SPImage imageWith.....] are autorelease, when they are no longer needed (ie. removed from parent) they release.
This can be useful and dangerous, useful as you don't have to worry about memory management, dangerous as if you think i'll just reuse the same SPImage various points in the game just removing it and adding it as needed, you'll go to add it and it'll not be there and crash.
But you can do manual memory management like this,
[[SPImage alloc] initWith.....];
But then you manually have to keep track of it's retain count and call release on it yourself.
You can log retainCount with
NSLog(@"My /SPDisplayObject's/ retain Count is: %d", [object retainCount]);
(I think) When an objects retain count reaches 0 it is gone completely, but if you have made your -(void)dealloc; method call release on it to only lower it to a retaincount of 1 or it'll try releasing something that isn't there and crash.