Hi,
I recommend work with the mojoPortal Source Code in Visual Studio but do not modify any mojoPortal code because that is making a fork and it will be difficult or impossible to upgrade without losing your customizations. The reason to work with the source code is because of all the example code to learn how to do what you want to do in custom features by looking at how existing features do it.
I assume what you are calling our image rotator you mean our Html Content feature which has some built in javascript that can be enabled to create an easy slide show. But you are not happy with the slideshow and would rather make a custom feature to do specifically what you want.
If you are an experienced ASP.NET developer I recommend copy the .sln file and rename it, then you can add your own custom projects to the solution and use post build events to copy the needed files from your feature up to correct locations in Web folder so they can run. You can look at post build events for the mojoPortal.Features.UI project for example to see how we do it there.
If you are new to ASP.NET, you may find it easier to get started using inline code like in our Hello World Examples, so you don't need to create custom projects, you can juts drop your files in without actually adding them to the mojoPortal project in Visual Studio.
If you inherit from our SiteModuleControl then you get some stuff built in that helps with instance specific properties. You can define and store as many instance specific key value pairs as you like using Module Settings. The SiteModuleControl already has it a property named Settings which is a hastable. You can define module settings and default values through the UI under Administration > Advanced Tools > Feature Installation for quick and dirty features, or you can define them in FeatureDefinition files and the Setup page can install them.
If your custom feature needs to store data beyond key value pairs then you should implement your own table(s) and do whatever you like to for data access. You could use LinqToSql (if using MS SQL) or an OR Mapper of your choosing, or you can implement a data layer similar to what we implemented for existing features. For quick and dirty features you could even use saved queries from our query tool, but I would not go overboard with that approach.
For example code for using the module settings, take a look at the code for the Google Map feature for example in mojoPortal.Features.UI/GoogleMap/GoogleMapModule.ascx.cs. This feature has no tables of its own and only uses module settings to store all its settings. Probably an image rotator can be implemented also without using anything but module settings.
Hope it helps,
Joe